WordPress触发标准发布列表呈现

时间:2014-03-21 12:14:19

标签: wordpress

有没有办法从自定义WP_Query以编程方式触发标准显示帖子列表,就像“类别”菜单项一样?
澄清:
我不是在寻找像List category posts这样的插件来完成这项工作,而是使用自定义的内置模板 我需要触发wp(主题)标准的帖子列表渲染循环! 谢谢!

2 个答案:

答案 0 :(得分:0)

将此代码放在需要从“example_category_slug”类别(或任何其他分类法)中呈现帖子列表的位置。

$wpq = array ('taxonomy'=>'category','term'=>'example_category_slug');
$myquery = new WP_Query ($wpq);
$article_count = $myquery->post_count;
echo "<ul>";
if ($article_count){
  while ($myquery->have_posts()) : $myquery->the_post();
  echo "<li><a href=\"".get_permalink()."\">".$post->post_title."</a></li>";
  endwhile;
}
echo "</ul>";

或使用更简单的查询,例如{id}的$myquery = new WP_Query ('cat= 11, 9');或任何其他wp_query 但是在选择放置位置的同时,请将Template Hierarchy视为一组规则文件正确使用的规则。

如果您需要使用wp_list_categories

后列出的categoires列表
<?php
$args = array(
 'show_option_all'    => '',
 'orderby'            => 'name',
 'order'              => 'ASC',
 'style'              => 'list'
); 
wp_list_categories($args);
?>

ful ref。在wp codex

答案 1 :(得分:0)

这是一种方法。
在短代码函数内部,或者在ajax风格的函数中,放一个这样的代码:

global  $wp_query;
$cat = $_GET['categoria'];
$wp_query->init();
$wp_query->query(array( 
    'posts_per_page' => 4,
    'category_name' => $cat 
  ));
get_template_part( 'blog', 'columns' );
wp_reset_query();
die();

get_template_part参数是主题相关的,可以从主题根目录中的php模板名称中删除。
在这种情况下,wp将调用[theme's_dir]/blog-columns.php ..
我推荐lecture @Michal推荐我