如何检查是否将searchform.php包含在窗口小部件中?

时间:2012-11-12 作者:Paul

我想在searchform中输入这样的内容。php:

<?php if($widget){ ?>
    //load serach form for sidebar...
<?php }else{ ?>
    //load different search form for page content (404 page)
<?php } ?>
我如何准备$widget 变量或者我应该用另一种方法?像过滤器?或获取模板部件?

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

检查是否包含searchform

Theget_search_form() (应该使用的)函数locate_template(\'searchform.php\'); 显示搜索表单。

后者返回(从其源代码中可以看到)

模板文件名(如果有)

因此,如果您只是想捕捉默认方式,那么您应该简单地进行测试

\'searchform.php\' === locate_template( \'searchform.php\' ) AND print \'Search form displayed!\';
关于如何包含搜索表单,您可能会想到上百种其他场景,但您永远也无法将它们全部捕捉到。

真正的问题(我没有解决方法)是,这只检查存在性,而不是通过小部件包含它。因此,上述内容仅适用于(自定义)小部件内部。

以编程方式显示小部件

如果希望通过模板中的PHP代码显示小部件(没有其他小部件),请使用the_widget() Source link

检查侧栏要检查侧栏,只需检查$GLOBALS[\'wp_registered_sidebars\'].

检查小部件核心还可以检查已注册的小部件:wp_get_sidebars_widgets(), 您可以使用它来检查小部件是否存在。

SO网友:Paul

我设法做到了这一点get_template_part(); - 您只需要searchform。php和searchform不同。php。

结束

相关推荐

Search within table?

我有一个很好的插件,名为Select WP Table Reloaded,它工作得很好,只是内容没有以有用的方式显示出来。嵌入表的页面会显示在搜索中,但不会显示特定的术语<有什么办法可以补救吗这是表格嵌入的页面:http://henschelhausbooks.com/authorsbooks/如果你要搜索一位作者,比如“Baake”,那么只有带有简短简介的页面才会显示出来。