使用ob_get_content获取搜索表单进入无限循环

时间:2013-04-18 作者:shariqkhan

我正在尝试更改searchform的外观。它基本上需要有两个文本字段。我希望这是一个插件的形式,任何人都可以激活。所以很明显我无法控制searchform.php. 我还读到,如果搜索表单。如果存在php,则忽略echo参数(http://codex.wordpress.org/Function_Reference/get_search_form#Notes)

这让我看到了标题为“MOAR OBJECT BUFFERZ!!!”下的代码片段地址:

http://shinraholdings.com/363/3-wordpress-hacks-to-unlock-some-much-needed-features/4/

我复制了原样的代码,并添加了如下过滤器:add_filter(\'get_search_form\',\'shinra_searchform\');

然而,代码似乎处于无限循环中。我在第11行和第12行后面放了一个echo语句。第12行之后的那一行永远不会被打印出来,而第11行之后的那一行继续被打印出来。

我尝试更改筛选器以将参数传递给:

  1. add_filter(\'get_search_form\',shinra_searchform(true),1);

  2. add_filter(\'get_search_form\',shinra_searchform(false),1);

  3. add_filter(\'get_search_form\',shinra_searchform($echo),1);

    有人能帮帮我吗?

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

没有安全的方法可以捕获searchform.php 在这种情况下。您可以在整个页面上运行输出缓冲,但之后可能会遇到conflicts with other plugins doing the same.

替代解决方案:在插件中添加一个小部件,以提供另一个搜索表单。请您的用户使用它,而不是内置小部件或主题搜索表单。

某些主题使用硬编码调用get_search_form() – 你无能为力。

结束

相关推荐

Search outside of the "loop"

我正在创建一个只使用Wordpress后端的博客。我找到了获取最新帖子(wp\\u get\\u recent\\u posts)和我所需的所有数据的函数。我通过包含wp负载来实现这一点,这样我就可以访问wp的功能。然而,我找不到任何允许我在Wordpress的主题循环之外进行搜索的内容,因为我对其余的数据进行了搜索。我希望有一个搜索功能,我可以通过它传递一个搜索查询,可以是标题、正文内容或标签名。如果我在文档中遗漏了一些显而易见的东西,那么在WP的“循环”之外,似乎还有一个功能可以满足我需要的所有其他东