Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Wordpress按类别获取自定义帖子类型帖子_Php_Wordpress_Categories_Custom Post Type - Fatal编程技术网

Php Wordpress按类别获取自定义帖子类型帖子

Php Wordpress按类别获取自定义帖子类型帖子,php,wordpress,categories,custom-post-type,Php,Wordpress,Categories,Custom Post Type,嗨,我有一些自定义的帖子类型类别的问题,我试图得到所有有一些类别的帖子,但它输出所有帖子。你能帮帮我吗。 多谢各位 我的代码 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args = array( 'post_type' => "collection-posts", 'category'=> 1, 'posts_per_page' => 12, 'paged'

嗨,我有一些自定义的帖子类型类别的问题,我试图得到所有有一些类别的帖子,但它输出所有帖子。你能帮帮我吗。 多谢各位

我的代码

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
    'post_type' => "collection-posts",
    'category'=> 1,
    'posts_per_page' => 12,
    'paged' => $paged
);
query_posts($args);

但它给出了所有的帖子。我不明白为什么参数键应该是
cat
,而不是
category

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
    'post_type' => "collection-posts",
    'cat' => 1,
    'posts_per_page' => 12,
    'paged' => $paged
);
query_posts($args);

我找到了另一个解决办法。你也可以使用WordPress和category slug的get
get_posts
方法。 例如:我假设你的分类slug是
collection posts分类

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
     'category'  => 'collection-posts-category',
     'post_type' => 'collection-posts',
     'posts_per_page' => 12,
     'paged' => $paged
);
$collection_posts = get_posts($args);

希望这会有帮助。

ooo谢谢。有一天,我试图解决这个问题:D,但在wp抄本中,他写道category@AramMkrtchyan没问题。真正地你在哪里看到的?Look:query_posts()是一种过于简单且有问题的方法,通过将页面的主查询替换为查询的新实例来修改它。它效率低下(重新运行SQL查询),并且在某些情况下会彻底失败(尤其是在处理POST分页时)。为此,任何现代WP代码都应该使用更可靠的方法,比如使用pre_get_posts钩子。TL;DR永远不要使用query_posts();这是代码的副本