我在函数中添加了函数。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 } ?>
谢谢你的建议。
最合适的回答,由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\');