我写了一些代码,自动创建一些帖子并为它们添加标签.我可以在"所有帖子"管理面板中看到这些标签,然后点击帖子"标记"链接即可获得带有标签的帖子.
但是,在我使用$ wp_query编写的插件中,无论我传入什么参数,我都会得到完整的帖子列表,无论他们是否有我正在寻找的标签.
这是我的代码:
// Now retrieve all items matching this brand name . . .
$query=new WP_Query(array('posts_per_page=5', array('tag' => array($brand_name))));
// The Loop
while ( $query->have_posts() ) : $query->the_post();
echo '<li>';
the_title();
echo '</li>';
endwhile;
// Reset Post Data
wp_reset_postdata();
Run Code Online (Sandbox Code Playgroud)
当我告诉它只返回5时,这会产生10个结果.实际上我只能得到2个帖子,因为这是标签的总数.
在网上环顾四周似乎有很多人遇到同样的问题,但没有解决方案.我一定尝试了大约10种不同的方式来指定标签但事实上返回的帖子数量是错误的,这表明我要么完全错了,要么存在某种错误.如果有帮助,Wordpress版本是3.4.1.
任何Wordpress专业版都能说明这一点吗?
提前致谢 !
The*_*pha 15
试试这个
$original_query = $wp_query;
$wp_query = null;
$args=array('posts_per_page'=>5, 'tag' => $brand_name);
$wp_query = new WP_Query( $args );
if ( have_posts() ) :
while (have_posts()) : the_post();
echo '<li>';
the_title();
echo '</li>';
endwhile;
endif;
$wp_query = null;
$wp_query = $original_query;
wp_reset_postdata();
Run Code Online (Sandbox Code Playgroud)
BeR*_*ket 14
答案在这里找到 - https://codex.wordpress.org/Template_Tags/get_posts
以下示例使用'tax_query'显示标记为'jazz'的帖子,在'genre'自定义分类法下
$args = array(
'tax_query' => array(
array(
'taxonomy' => 'genre',
'field' => 'slug',
'terms' => 'jazz'
)
)
);
$postslist = get_posts( $args );
Run Code Online (Sandbox Code Playgroud)
所以对你来说就是这样
$args = array(
'posts_per_page' => 5,
'tax_query' => array(
array(
'taxonomy' => 'post_tag',
'field' => 'slug',
'terms' => sanitize_title( $brand_name )
)
)
);
$postslist = get_posts( $args );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43227 次 |
| 最近记录: |