如何添加额外的搜索按钮?

时间:2013-04-03 作者:hulkster

我在函数中添加了函数。php,因此作者只能搜索其发布的内容。我想在searchform中添加额外的“搜索我的帖子”按钮。php,因此只有登录用户才能看到-使用此按钮搜索他们发布的帖子。但我可以让它工作(

当我单击任何按钮“搜索所有帖子”或登录时单击“搜索我的帖子”时,它只搜索登录的作者。

function search_author($query) {
  if ($query->is_search) {
        $query->set(\'author\', get_current_user_id());
  }
  return $query;
}
add_filter(\'pre_get_posts\',\'search_author\');
searchform。php

<?php if ( is_user_logged_in() ) { ?>
<form action="<?php echo home_url(); ?>/" method="get" id="searchform">
    <fieldset>
        <div id="searchbox">
            <input class="input" name="s" type="text" id="keywords" value="<?php _e(\'Search input\',\'mytheme\') ?>" onfocus="if (this.value == \'<?php _e(\'Search input\',\'mytheme\') ?>\') {this.value = \'\';}" onblur="if (this.value == \'\') {this.value = \'<?php _e(\'Search input\',\'mytheme\') ?>\';}">
                </div>
                <div id="searchbutton1">
                <p class="button search">
            <input type="submit" name="search" value="<?php _e(\'Search All Posts\',\'mytheme\') ?> ">
                </p>
                </div>
                <div id="searchbutton2">
                <p class="button search">
            <input type="submit" name="author" value="<?php _e(\'Search My Posts\',\'mytheme\') ?> ">
                </p>
                </div>
        </fieldset>
</form>
<?php } else { ?>
<form action="<?php echo home_url(); ?>/" method="get" id="searchform">
    <fieldset>
        <div id="searchbox2">
            <input class="input" name="s" type="text" id="keywords" value="<?php _e(\'Search input\',\'mytheme\') ?>" onfocus="if (this.value == \'<?php _e(\'Search input\',\'mytheme\') ?>\') {this.value = \'\';}" onblur="if (this.value == \'\') {this.value = \'<?php _e(\'Search input\',\'mytheme\') ?>\';}">
                </div>
                <p class="button search2">
            <input type="submit" name="search" value="<?php _e(\'Search\',\'mytheme\') ?> ">
                </p>
        </fieldset>
</form>
<?php } ?>
谢谢你的建议。

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

您可能需要检查用户单击了哪个按钮,它是搜索所有帖子还是搜索我的帖子,基于此您可以应用过滤器。试试这个。。

function search_author($query) {
  if($query->is_search) 
  {
    if($query->query_vars[\'author\']==\'Search My Posts\') 
    {
        $query->set(\'author\', get_current_user_id());
    }
  }
  return $query;
}
add_filter(\'pre_get_posts\',\'search_author\');

结束

相关推荐

Search outside of the "loop"

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