仅在搜索结果页面上的一种帖子类型上显示元

时间:2021-02-19 作者:Jean X. Santiago Santana

我想从所有不是的帖子类型中删除帖子元;“发布”;从我的网站或至少从搜索结果。

我目前使用的是Jnews主题,在搜索结果页面中,我得到了所有的帖子类型(帖子、页面、产品),但我只对留下帖子元数据(.jeg\\u post\\u meta)来发布帖子感兴趣,并将其删除到所有其他帖子类型,如页面、产品和结果页面可以带来的其他帖子类型。

.jeg_post_meta 是搜索结果页用于所有帖子类型的所有meta的样式类。

1 个回复
SO网友:Tony Djukic

您没有为搜索结果输出提供任何输出代码,因此我在下面提供的是基于事情“应该”如何工作的猜测-很可能事情在您的主题中看起来会有所不同,因此您需要找出如何应用相同的逻辑。

在搜索结果模板中(content-search.php 也许吧?)您将获得搜索结果,它们将全部包含在如下变量中:

$search_query
这将是搜索查询的结果(可能会被命名为其他名称)。。。

所以在你的while() 要检查的循环获取每个结果的“类型”:

$type = $search_query->post->post_type;
然后,在输出post meta的HTML和数据之前,您将检查类型是否匹配post, 像这样:

if( $type == \'post\' ) :
  //your post meta output code
endif;
把整个事情放在一起。。。记住,这里有很多猜测:

<?php
    while( $search_query->have_posts() ) {
        $search_query->the_post();
        $type = $search_query->post->post_type;
        the_title();
        if( $type == \'post\' ) :
            echo \'<div class="jeg_post_meta">\';
                echo \'By \' . the_author_posts_link() . \'on \' . the_time( \'F jS, Y\' ) . \'in \' . the_category( \', \' ) . \'.\';
            echo \'</div>\';
        endif;
        echo \'<div class="jeg_post_content">\';
            the_excerpt();
        echo \'</div>\';
    }
?>
不过提醒一下,你不应该编辑第三方主题,因为如果/当它更新时,你的编辑会丢失,你必须重新开始。因此,您希望在覆盖现有模板和内容部分的子主题中执行此操作。

相关推荐

如何在合并POST-TYPE时获得循环中当前页面的内容

我做了一个循环,它正在加载post类型。但是,虽然它正在加载基本的帖子和帖子类型,但它并没有加载页面的主要内容。我正在寻找一种在加载帖子类型时加载当前页面内容的方法。我该怎么做?global $wp_query; $args = array_merge( $wp_query->query, array( \'post_type\' => array(\'post\',\'Projets\'), \'posts_per_page\' => 3, ) );