如何确定帖子中是否包含Widget内容?

时间:2011-04-06 作者:Scott B

我有一个注册的边栏,名为“我的标题”,它会影响标记中它下面元素的绝对位置。

所以我需要在标题中执行一个查询。php来确定当前帖子是否有侧边栏,并将类标识符写入主题的body标记。我将使用这个css类相应地调整元素的绝对位置。

是否有一种方法可以单独调用,与用于显示侧栏的方法不同,以确定帖子是否包含“我的侧栏”小部件的小部件内容?例如,只返回true/false的?

查看小部件后。php,我尝试使用is\\u active\\u提要栏(“my-header”),但它对所有页面都返回true。我需要一个接受post作为参数的函数。否则,如果不存在,我想我将创建自己的函数。

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

<?php
$bodyclass = "";
// are we on a \'single\' page? e.g. a post or page or some other custom post type?
if(is_single()){
    // is this a post of type \'page\'? or is it a blogpost?
    global $post;
    if($post->post_type == \'page\'){
        // good now to check if we have a sidebar with active content
        if( is_active_sidebar(\'my-header\')){
            $bodyclass="wehavesidebarcontentyay";
        }
    }
}

?>
<body <?php body_class($bodyclass); ?>>
虽然我确信如果您的body标签上有body\\u类,那么您就已经有了所需的css类和选择器,可以在没有PHP代码的情况下完成这项工作。

相关推荐

Using add_filter() in Widgets

只需查询引用add_filter() 作用您可以在WordPress小部件类中使用此函数吗。Example我有一个带有动态创建代码的小部件,我想将其传递给插件中创建的另一个函数。这能实现吗?<?php /** * Display the actual Widget * * @param Array $args * @param Array $instance */ public function widget($args, $inst