如何为WordPress主题创建条件Content_Width?

时间:2011-01-07 作者:SteveLambert

我试图为函数中的内容宽度创建一个条件语句。我的主题的php。所以有些类别的content\\u宽度为580,有些类别的content\\u宽度为900。这将使oEmbed在任何地方都能正常工作。

通常,你会在你的函数中有这个。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;
}
当我的函数中有这个时。php内容宽度变成我在最后一行中写的内容。

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

谢谢

2 个回复
最合适的回答,由SO网友:goldenapples 整理而成

不,这是不可能的。$content_width 是一个主题范围内的常量,它在函数中设置。在设置任何查询条件之前。

$content_width 用于确定中的中间图像大小image_send_to_editor. “大”图像大小将设置为$content\\u width的值。

如果您需要按类别修改这些大小,您可以挂接到该过滤器。。。看看我对这个问题的回答change set_post_thumbnail_size according to post type admin page 关于如何做到这一点的一般示例(请注意,如果您尝试按类别进行操作,则几乎总是失败,因为当用户首次上传图像时,几乎总是不会设置帖子类别-按帖子类型进行设置更可靠一些)

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

SO网友:Anonym

Maybe this works:

if(in_category(array(\'news\',\'blog\'))) {
   $GLOBALS[\'content_width\'] = 580;
} 
elseif(is_page()) {
   $GLOBALS[\'content_width\'] = 580;
}
else {
   $GLOBALS[\'content_width\'] = 900;
}
结束

相关推荐

Displaying oEmbed errors?

有时,通过oEmbed嵌入项目是不可能的,例如,当YouTube视频已禁用嵌入时。The oEmbed service will return a 401 Unauthorized, 并且不会转换代码。有没有办法通知用户这一点?当前的工作流是非直观的(至少对我来说),我更喜欢在WordPress页面上,或者更好的是,在编辑器中显示一条消息,说明对象无法嵌入。