我正在使用自定义社区(CC)主题, 我创建了一个子主题, 我创建了functions.php文件
原始CC主题在functions.php中具有此代码
// This theme uses post thumbnails
if (function_exists('add_theme_support')) {
add_theme_support('post-thumbnails');
set_post_thumbnail_size(222, 160, true);
add_image_size('slider-top-large', 1006, 250, true);
add_image_size('slider-large', 990, 250, true);
add_image_size('slider-responsile', 925, 250, true);
add_image_size('slider-middle', 756, 250, true);
add_image_size('slider-thumbnail', 80, 50, true);
add_image_size('post-thumbnails', 222, 160, true);
add_image_size('single-post-thumbnail', 598, 372, true);
}
我想将发布缩略图的尺寸从222× 160更改为更大的尺寸, 例如400× 300。
我已经阅读了有关” 发布缩略图” , “ 功能参考/添加图像大小” , “ 功能参考/设置发布缩略图” , “ 功能参考/发布缩略图” , “ 插件API /过滤器参考” 的规范。
不幸的是, 我对PHP的理解仍然非常有限, 我处于早期学习阶段。
【WordPress函数(更改现有的特色图像尺寸)】我已经看到了在二十个主题的其他地方听起来类似问题的示例, 但是如果没有我的functions.php将我锁定, 在ftp上将其删除并重新启动, 我什么也无法理解或应用。
我仍然不确定是否可以将功能添加到子主题functions.php中, 该功能将为父主题中的缩略图(或任何其他指定的图像类型)取消设置/重新分配图像大小。
为了澄清我的functions.php和sub-theme是否正常工作, 我可以确认我已经成功使用了用于设置登录样式的函数, 我只是缺乏自己实现此目的的理解。
遵循tuts-plus教程(第6点-删除其他图像尺寸)之后, 我在functions.php中尝试了以下代码:
//change thumbnail size
function remove_parent_image_sizes( $sizes ) {
unset( $sizes['post-thumbnail-size'] );
return $sizes;
}if ( function_exists( 'add_image_size' ) ) {
// 400 pixels wide and 300 px tall, cropped
add_image_size( 'post-thumbnails', 400, 300, true );
}
然后, 我从帖子中删除了一张特色图片, 并应用了一张新图片, 但尺寸仍然为222× 160。
仍然很困惑:(
也尝试过这种方法, 但仍然没有运气;
//change thumbnail size
function remove_parent_image_sizes( $sizes ) {
unset( $sizes['post-thumbnail-size'] );
return $sizes;
}if (function_exists('add_theme_support')) {
add_theme_support('post-thumbnails');
set_post_thumbnail_size(400, 300, true);
add_image_size('post-thumbnails', 400, 300, true);
}
并将此行(从stackexchange链接修改)添加到末尾导致我的站点中断:
add_action( 'after_setup_theme', 'remove_parent_image_sizes' );
#1你应该首先使用remove_action()或remove_filter()函数来删除父主题行为, 然后可以使用add_action()添加子主题的动作。这是有关如何在子主题中修改父主题行为的不错的教程, 供你参考。
#2最后的答案非常简单, 父主题的作者就我需要做什么提供了清晰的说明。
* To override cc_setup() in a child theme, add your own cc_setup to your child theme's
* functions.php file.
原始代码上方是功能的开始, 该功能需要包含在子主题中:
function cc_setup() {
global $cap, $content_width;
// This theme styles the visual editor with editor-style.css to match the theme style.
add_editor_style();
// This theme uses post thumbnails
if (function_exists('add_theme_support')) {
add_theme_support('post-thumbnails');
set_post_thumbnail_size(222, 160, true);
add_image_size('slider-top-large', 1006, 250, true);
add_image_size('slider-large', 990, 250, true);
add_image_size('slider-responsile', 925, 250, true);
add_image_size('slider-middle', 756, 250, true);
add_image_size('slider-thumbnail', 80, 50, true);
add_image_size('post-thumbnails', 222, 160, true);
add_image_size('single-post-thumbnail', 598, 372, true);
}
然后, 我删除了我不想修改的行并关闭了函数}:
// Override parent theme thumbnail size
function cc_setup() {
global $cap, $content_width;
// This theme styles the visual editor with editor-style.css to match the theme style.
add_editor_style();
// This theme uses post thumbnails
if (function_exists('add_theme_support')) {
add_theme_support('post-thumbnails');
set_post_thumbnail_size(400, 300, true);
add_image_size('post-thumbnails', 400, 300, true);
}
}
保存functions.php(子主题), 将新的特色图片上传到帖子中并且可以正常工作, 我的缩略图现在为400, 300。
我的错是第一次没有正确阅读文档, 这是教训!
#3我认为在子主题中创建自己的尺寸的最简单方法是使用remove_theme_support删除并再次将其设置为add_theme_support, 如以下示例所示:
// Use the after_setup_theme hook with a priority of 11 to load after the
// parent theme, which will fire on the default priority of 10
add_action( 'after_setup_theme', 'remove_featured_images_from_child_theme', 11 );
function remove_featured_images_from_child_theme() {// This will remove support for post thumbnails on ALL Post Types
remove_theme_support( 'post-thumbnails' );
// Add this line in to re-enable support for just Posts
add_theme_support( 'post-thumbnails', array( 'post' ) );
// Thumbnail sizes
add_image_size( 'my-theme-featured', 638, 280, true );
add_image_size( 'my-theme-featured-home', 311, 207, true);
add_image_size( 'my-theme-featured-carousel', 970, 400, true);
}
更改后, 不要忘记使用AJAX缩略图重建之类的插件重建缩略图
希望有帮助, 迈克
推荐阅读
- wordpress按搜索页面上的帖子类型分组
- WordPress的Foreach,传递类别ID变量显示帖子()
- WordPress通过元数据和搜索Heirachy筛选自定义帖子类型
- WordPress过滤器可以挂接到菜单li项并添加自定义属性
- Linux安装MySQL步骤
- Kubernetes官方java客户端之五(proto基本操作)
- 执行shell脚本的三种方式
- es常用查询语法 #yyds干货盘点#
- #yyds干货盘点# 简简单单实现 Python Web 的登录注册页面,还包含一半逻辑。