Php Wordpress用于更改现有特征图像大小的功能

Php Wordpress用于更改现有特征图像大小的功能,php,wordpress,function,wordpress-theming,Php,Wordpress,Function,Wordpress Theming,我正在使用自定义社区(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(22

我正在使用自定义社区(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);
    }
我想将帖子缩略图大小从222x160更改为更大的大小,例如400x300

我已经阅读了关于Post缩略图、函数参考/添加图像大小、函数参考/设置Post缩略图大小、函数参考/Post缩略图、插件API/过滤器参考的codex

不幸的是,我对PHP的理解仍然非常有限,我还处于早期学习阶段

我在其他地方也看到过类似的例子,比如在“210”主题中出现了类似的问题,但是如果没有我的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 );
}
然后我从一篇文章中删除了一个特色图片,并应用了一个新的,但它的尺寸仍然是222x160

仍然困惑:(

也试过这种方法,但仍然没有运气

//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' );

您应该首先使用
remove_action()
remove_filter()
函数删除父主题行为,然后可以使用
add_action()
添加子主题的操作。
这是一个很好的教程,介绍了如何在子主题中修改父主题行为,供您参考。

最后,答案非常简单,父主题的作者对我需要做的事情给出了明确的说明

 * 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(子主题),上传了一个新的特色图片到一篇文章,它成功了,我的缩略图现在是400300


第一次没有正确阅读文档是我的错,吸取了教训!

在我看来,在子主题中创建自己大小的最简单方法是删除并重新设置,如以下示例所示:

// 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);
}
不要忘了在更改后使用类似的插件重建缩略图

我希望这有帮助,
迈克

检查一下这个谢谢你的教程,我相信它会有帮助的!