查询具有特定标签的所有帖子

时间:2014-10-15 作者:Antwan

我需要获取带有特定标签的所有帖子,但我将获取所有帖子。如果我发布了一篇带有所需标记的文章,并列出了带有该标记的所有文章,那么我的查询就会起作用,但当我发布带有另一个标记的文章时,它会获取新发布的文章。

这是我的问题:

$original_query = $wp_query;
$wp_query = null;
$args=array(
    \'posts_per_page\' => -1, 
    \'tag\' => $post_tag
);
$wp_query = new WP_Query( $args );
$post_titles=array();
$i=0;
if ( have_posts() ) :
    while (have_posts()) : the_post();
        $post_titles[$i]=get_the_ID() ;
        $i++;
    endwhile;
endif;
$wp_query = null;
$wp_query = $original_query;
wp_reset_postdata();

2 个回复
最合适的回答,由SO网友:Courtney Ivey 整理而成

创建新的WP\\U查询比尝试清除或覆盖原始查询要容易得多。

如果$post\\U tag是一个标记段塞,您可以简单地使用:

<?php
$the_query = new WP_Query( \'tag=\'.$post_tag );

if ( $the_query->have_posts() ) {
    echo \'<ul>\';
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        echo \'<li>\' . get_the_title() . \'</li>\';
    }
    echo \'</ul>\';
} else {
    // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();

SO网友:drjorgepolanco

在您的功能中。php

/* Display Related Products */
/* ======================== */

if ( ! function_exists( \'display_related_products\' ) ) {

    function display_related_products($post_tag) {
        ?>
        <div class="related-products">

            <!-- simple WP_Query -->
            <?php
                $args = array(
                    \'post_type\' => \'product\',
                    \'tag\' => $post_tag, // Here is where is being filtered by the tag you want
                    \'orderby\' => \'id\',
                    \'order\' => \'ASC\'
                );

                $related_products = new WP_Query( $args );
            ?>

            <?php while ( $related_products -> have_posts() ) : $related_products -> the_post(); ?>

                <a href="<?php the_permalink(); ?>" class="related-product">
                    <?php if( has_post_thumbnail() ) : ?>
                        <?php the_post_thumbnail( \'full\', array( \'class\' => \'related-product-img\', \'alt\' => get_the_title() ) ); ?>
                    <?php endif; ?>
                </a>

            <?php endwhile; wp_reset_query(); ?>

        </div>
        <?php
    }
}
从任何地方拨打

display_related_products(\'name-of-the-tag\');

结束

相关推荐

browse by category and tags?

我有一个自定义的帖子类型,叫做freebies。这种自定义帖子类型有自己的分类法,包括wordpress中的“普通”类别(这是免费赠品的子类别)和用作标记的自定义分类法(称为免费赠品标记)我已经设法为免费赠品提供了自己的模板:archive-freebies.php 来自免费赠品子类别的帖子显示在category-freebies.php. 免费赠品中的标签显示在模板中taxonomy-freebie-tags.php现在,当访问者单击免费赠品中的一个类别时,他会看到该类别中的帖子,当单击免费赠品中的标签