如何从一组帖子中呼应标题?

时间:2014-03-17 作者:user48752

我正在尝试使用query_posts 并尝试将它们保存在一个数组中,以便从数组中检索帖子。这就是我在做的,

    $posts =array();
    $args = array(\'posts_per_page\' =>3,\'cat\' => 3 );
    $posts[] = query_posts( $args );

    global $post;
    if ( ! empty($posts) ) :
    foreach ($posts as $post) {
    setup_postdata($post);  
        echo get_the_title();
    }
    wp_reset_postdata();
    endif;
    wp_reset_query();
当我运行这个脚本时,它会显示一个不在cat 但如果我这样做了print_r($post) 它显示了正确的三个帖子。你知道我哪里做错了吗?

2 个回复
SO网友:Ahmad Saad

请尝试使用get\\u帖子,如我在中所读http://codex.wordpress.org/Function_Reference/query_posts

您可以使用以下代码:

global $post;
$args = array(\'posts_per_page\' =>3,\'category\' => 3 );
$myposts = get_posts( $args );

foreach( $myposts as $post ) :
  setup_postdata($post); 
  the_title()
endforeach; 
wp_reset_postdata();
尊敬的。

SO网友:s_ha_dum

query_posts() 重击global 变量$wp_query. 不要使用它:

注意:此功能不适用于插件或主题。如后文所述,有更好、性能更好的选项来更改主查询。query\\u posts()是一种过于简单且有问题的方法,通过将页面的主查询替换为新的查询实例来修改它。它效率低下(重新运行SQL查询),并且在某些情况下会彻底失败(尤其是在处理POST分页时)。任何现代的WP代码都应该使用更可靠的方法,比如使用pre\\u get\\u posts钩子。

http://codex.wordpress.org/Function_Reference/query_posts

请注意第一行:“This function isn\'t meant to be used by plugins or themes.“”

有人已经提到get_posts(), 这是完全正确的。然而,我倾向于WP_Query 对于几乎所有与后期检索相关的内容,我倾向于:

$args = array(
  \'posts_per_page\' => 3,
  \'cat\' => 1 
);
$cp = new WP_Query( $args );
foreach ($cp->posts as $p) {
  echo apply_filters(\'the_title\',$p->post_title);
}

结束

相关推荐

重写admin-ajax.php的规则

我浏览了很多帖子,在google上搜索了很多,但还是没能实现。我正在尝试为管理ajax创建一个重写规则。php,以实现此处所示的相同结果:Adding admin-ajax.php to the frontend. Good or bad idea?但是,我不想使用htaccess文件。相反,我需要通过动态添加规则(比如使用add\\u rewrite\\u rule)来实现这一点,例如,因为要调用的ajax函数位于我正在编写的插件中,我希望提供一个友好的URL来调用。我似乎遵循了有关该方法的所有最佳做法