问题描述

我正在尝试为我的主题的 functions.php 中的内容宽度创建条件语句。所以一些类别将有一个 580 的 content_width,一些将有 900. 这将使 oEmbed 在任何地方使用正常工作。

通常你会在你的 functions.php 中有这个:

if ( ! isset( $content_width ) ) 
    $content_width = 900;

我想要这样的东西:

if(in_category(array('news','blog'))) {
   $content_width = 580;
} 
elseif(is_page()) {
   $content_width = 580;
}
else {
   $content_width = 900;
}

当我在我的 functions.php 中有这样的内容宽度成为我写在最后一行的任何东西。

我错过了什么吗?这是甚么可能吗?

谢谢!

最佳解决方案

不,不可能。 $ content_width 是一个 theme-wide 常量,并且在设置任何查询条件之前在 functions.php 中设置它。

$ content_width 用于确定 image_send_to_editor 中的中间图像大小。 “large” 图像大小将设置为 $ content_width 的值。

如果您需要在 per-category 基础上修改这些尺寸,您可以挂接到该过滤器中… 有关如何完成此操作的一般示例,请参阅 change set_post_thumbnail_size according to post type admin page 的问题解答 (请注意,如果您在尝试按类别进行操作,因为在用户首次上传图像时几乎总是不设置帖子类别 – 用帖子类型设置它更可靠)

无论您的帖子和页面多宽,请将 $ content_width 设置为您希望用户在帖子中包含的最广泛的图像。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。