php WordPress按标签过滤帖子

yfjy0ee7  于 2023-02-07  发布在  PHP
关注(0)|答案(1)|浏览(163)

我正在尝试通过标签过滤帖子。
默认情况下,所有标签的帖子都是可用的。但是用户可以增加和减少过滤器中的标签数量。
过滤帖子的最好方法是什么?我应该计算所有省略的标签并使用URL参数,还是有更简单的方法?

$args  =
        array(
             'tag'        => $tags_arr, //array('sport', 'art', 'news')
         );
$posts_by_tags = get_posts( $args );
foreach ( $posts_by_tags as $post_by_tags ){
  echo '<li>' . $post_by_tags->post_title . '</li>';
}
    • 统一采购司:**

我决定做这样的链接:

<ul>
	<li><a href="?tags=apples,oranges">Bananas</a></li>
	<li><a href="?tags=bananas,oranges">Apples</a></li>
	<li><a href="?tags=apples,bananas">Oranges</a></li>
</ul>

PHP语言:

$tags = array();
foreach ( get_tags() as $before_tag ) {
    $tags[] = $before_tag->name;
}
if ( isset( $_REQUEST['tags'] ) && $_REQUEST['tags'] != '' && $_REQUEST['tags'] != null ) {
    $filter_tags = explode( ',', $_REQUEST['tags'] );
} else {
    $filter_tags = $tags;
}
$args =
    array(
        'tag'         => $filter_tags,
    );
$posts_by_tags = get_posts( $args );
$each_sixth    = 1;
foreach ( $posts_by_tags as $post_by_tags ){
    // do stuff
    echo get_the_title( $post_by_tags->ID );
}
zdwk9cvp

zdwk9cvp1#

试试这个

$query=new WP_Query(array('posts_per_page=-1', array('tag' => array($tags_arr))));
  • (或)*
$args=array('posts_per_page' => 5, 'tag' => $tags_arr);

$wp_query = new WP_Query( $args );

循环你的帖子后...
最后,重置过账数据:

wp_reset_postdata();

相关问题