首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于更改现有特色图像大小的Wordpress函数

用于更改现有特色图像大小的Wordpress函数
EN

Stack Overflow用户
提问于 2013-08-08 14:05:13
回答 3查看 4.1K关注 0票数 1

我正在使用自定义社区(CC)主题,我已经创建了一个子主题,我已经创建了一个functions.php文件

原始的CC主题在functions.php中包含以下代码

代码语言:javascript
复制
        // 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。

我已经阅读了文章缩略图、函数参考/添加图像大小、函数参考/设置文章缩略图大小、函数参考/文章缩略图、插件API/过滤器参考。

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

我在其他地方看过类似问题的例子,但是我不能理解或应用我自己,除非我的functions.php锁定我,在ftp上删除它,然后重新开始。

我仍然不确定是否有可能在我的子主题functions.php中添加一个函数来取消设置/重新分配父主题中缩略图(或任何其他指定的图像类型)的图像大小。

为了澄清我的functions.php和子主题是否正常工作,我可以确认我已经成功地使用了函数来设置我的登录样式,我只是缺乏对此的理解。

按照tuts-plus教程(第6点-删除附加图像大小),我在functions.php中尝试了以下代码:

代码语言:javascript
复制
//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。

仍然被难住了:

我也尝试过这种方法,但还是没有成功;

代码语言:javascript
复制
//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链接修改)添加到末尾会导致我的网站崩溃:

代码语言:javascript
复制
add_action( 'after_setup_theme', 'remove_parent_image_sizes' );
EN

回答 3

Stack Overflow用户

发布于 2013-08-08 14:34:08

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

票数 1
EN

Stack Overflow用户

发布于 2013-08-09 08:08:11

最后,答案非常简单,父主题的作者已经提供了明确的说明,告诉我需要做什么。

代码语言:javascript
复制
 * To override cc_setup() in a child theme, add your own cc_setup to your child theme's
 * functions.php file.

在原始代码之上是一个函数的开始,它需要包含在子主题中:

代码语言:javascript
复制
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);
    }

然后我只删除了我不想修改的行,并关闭了函数}:

代码语言:javascript
复制
// 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。

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

票数 1
EN

Stack Overflow用户

发布于 2014-02-28 00:42:48

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

代码语言:javascript
复制
// 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 Thumbnail Rebuild这样的插件重建你的缩略图

我希望这能帮到你,迈克

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18118973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档