Check if widget is active

时间:2017-01-24 作者:Naz

我有两个自定义小部件,一个Search\\u Widget\\u页面,它是用以下代码创建的;

class Search_Widget_Page extends WP_Widget {
    /**
     * Register widget with WordPress.
     */
    function __construct() {
        parent::__construct(
            \'Search_Widget_Page\',
            __(\'Search Form - Pages\', \'text_domain\'),
            array( \'description\' => __( \'Add a search form to a page, there must not be another search form in the side bar.\', \'text_domain\' ), ) // Args
        );
    }
然后,我有另一个类似的小部件可以显示在侧栏中,但是,如果页面上正在使用上面的小部件,我不希望它显示出来。我尝试了以下代码,但没有成功;

public function widget( $args, $instance ) {

if( is_active_widget( \'Search_Widget_Page\' ) ) { // check if search widget is used

   Do not display this widget

} else {

   Display this widget

}

1 个回复
SO网友:solosik

根据Codex, 您可以将一些其他参数添加到is_active_widget() 让它发挥作用。所以试试这个:

if ( is_active_widget(false, false, \'Search_Widget_Page\', true) ) { // check if search widget is used

   // Do not display this widget

} else {

   // Display this widget

}

相关推荐

Displaying Widgets

在主题开发期间,我了解如何在functions.php 文件然而,当谈到在主题中显示小部件时,是否有一种首选的方式来显示它们-primary,使用the_widget() 功能与dynamic_sidebar() 作用