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 - Fatal编程技术网

PHP:如何在WordPress中使用自定义查询显示特定类别的帖子?

PHP:如何在WordPress中使用自定义查询显示特定类别的帖子?,php,wordpress,Php,Wordpress,我使用的不是WP语言,而是简单的PHP 我现在的代码是 SELECT * FROM wp_posts w WHERE w.post_status = 'publish' AND w.post_type = 'post' ORDER BY RAND() LIMIT 3 因此,我可以在我的自定义主页(非WP)上随机显示3篇博客文章 它起作用了 但现在我想选择一个特定的类别 我怎么做 query_posts('cat=123');

我使用的不是WP语言,而是简单的PHP 我现在的代码是

SELECT * FROM wp_posts   w
        WHERE  w.post_status = 'publish'
        AND w.post_type = 'post'
        ORDER BY RAND()
        LIMIT 3
因此,我可以在我的自定义主页(非WP)上随机显示3篇博客文章 它起作用了

但现在我想选择一个特定的类别

我怎么做

query_posts('cat=123');

对于特定的类别,这会起作用。如果类别有名称,则将该值与名称相等。不过,建议使用类别ID(如果以后发生更改)

您真的不应该使用SQL查询,而应该使用对象或函数

您的查询应如下所示:

$posts = new WP_Query(array(
    'orderby' => rand,
    'posts_per_page' => 3,
    'post_status' => 'publish', 
    'cat' => 123
));
如果您在主页上使用此功能,“查询帖子”功能将更适合:

query_posts(array(
    'orderby' => rand,
    'posts_per_page' => 3,
    'post_status' => 'publish', 
    'cat' => 123
));

在本例中,类别ID为“123”,但您可以使用此处的任何一个。

此处仅显示最后5篇文章,而不显示特定类别
global $wpdb;

$posts = $wpdb->get_results('SELECT ID, post_title AS title, post_excerpt AS excerpt FROM '.$wpdb->posts.' WHERE post_type = "post" AND post_status = "publish" ORDER BY post_date DESC LIMIT 5');