I have a paid theme that has the following function manually hard-coded. It pulls the 8 latest posts and displays them:
global $do_not_duplicate;
global $post;
query_posts( array(
'posts_per_page' => '8',
'post__not_in' => $do_not_duplicate,
'ignore_sticky_posts' => 1
) );
I have looked at this page and tried to modify the code to show posts from the news category only (category number 1):
global $do_not_duplicate;
global $post;
// Attempt 1
query_posts( array(
'cat=1',
'posts_per_page' => '8',
'post__not_in' => $do_not_duplicate,
'ignore_sticky_posts' => 1
) );
// Attempt 2
query_posts( array(
'category=1',
'posts_per_page' => '8',
'post__not_in' => $do_not_duplicate,
'ignore_sticky_posts' => 1
) );
// Attempt 3
query_posts( array(
'category' => array(1),
'posts_per_page' => '8',
'post__not_in' => $do_not_duplicate,
'ignore_sticky_posts' => 1
) );
// Attempt 4
query_posts( array(
'cat=news',
'posts_per_page' => '8',
'post__not_in' => $do_not_duplicate,
'ignore_sticky_posts' => 1
) );
Nothing worked. The same list of 8 recent posts from all categories was returned.
query_posts
, instead if you want to change the query, modify it with thepre_get_posts
action, don't replace it, and if you absolutely must, use a standardWP_Query
loop instead. There are no good situations to usequery_posts
and there are always better alternatives. If you find it in a premium theme this should be considered a red flag and a warning sign of poor code quality