search only pages if on page

时间:2011-08-19 作者:scvdlk

我有一个由网页和帖子组成的网站。只有几页和大量的帖子。如何将侧边栏中的搜索框设置为仅在页面上搜索页面,或仅在博客页面上搜索帖子?现在它将我搜索页面上的所有内容混合在一起。

如果能在搜索框下添加复选框来选择帖子或页面,那就更酷了。

谢谢

2 个回复
SO网友:Brian Fegter

您可以将post\\u类型附加到搜索字符串的末尾,如下所示:

http://yourdomain.com/?s=search+string&post_type=page
这很有魅力:

<form method="get" action="<?php echo home_url();?>">
    <input type="text" name="s" />
    <label>Search Pages</label>
    <input type="radio" name="post_type" value="page" />
    <label>Search Posts</label>
    <input type="radio" name="post_type" value="post" />
    <button type="submit">Submit</button>
</form>
您还可以在表单标记(无单选按钮)中执行类似操作,以进行上下文搜索:

<?php if(is_page()):?>
    <input type="hidden" name="post_type" value="page" />
<?php endif;?>

SO网友:kaiser

条件标记:is_page()is_archive(). 还有is_singular(), 但你最好看看法典中的这个。

结束

相关推荐

Custom post_type search pages

因此,我的网站上有一个专门搜索YouTube视频自定义帖子类型的部分。我完全可以搜索自定义类型。然而,我不确定如何创建一个具有针对这种类型搜索的自定义格式的搜索页面。我在youtube上创建了一个自定义循环。php并在搜索中修改。phpget_template_part( \'loop\'); 到get_template_part( \'loop\', \'youtube\'); 但是,它会全局影响搜索结果。是否有创建自定义搜索的方法。特定post\\u类型的php页面?谢谢你的帮助。