Методы и свойства класса WP_Query

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

Будем считать, что это будет небольшое (но довольно полезное) дополнение к посту про создание циклов при помощи WP_Query.

Сначала я хотел дописать эту часть прямо там в комментариях, но она получилась не такой уж и небольшой, да и к тому же не все люди читают комменты.

Сначала создам объект, он мне ещё пригодится позднее:

$args = array(
	'cat' => 1,
	'posts_per_page' => 5,
	'orderby' => 'comment_count' // WordPress 2.9+
);
 
$myquery = new WP_Query($args);

Свойства:

Во всех последующих примерах будет использоваться объект, созданный в начале поста, ну то есть двумя строчками выше 🙂

print_r($myquery->query);
/*
Array (
[cat] => 1
[orderby] => comment_count
[posts_per_page] => 5
)
*/
print_r($myquery->query_vars);
/*
Array (
[cat] => 1
[posts_per_page] => 5
[orderby] => comment_count
[error] =>
[m] => 0
[p] => 0
[post_parent] =>
[subpost] =>
[subpost_id] =>
[attachment] =>
[attachment_id] => 0
[name] =>
[static] =>
[pagename] =>
[page_id] => 0
[second] =>
[minute] =>
[hour] =>
[day] => 0
[monthnum] => 0
[year] => 0
[w] => 0
[category_name] => uncategorized
[tag] =>
[tag_id] =>
[author_name] =>
[feed] =>
[tb] =>
[paged] => 0
[comments_popup] =>
[meta_key] =>
[meta_value] =>
[preview] =>
[s] =>
[sentence] =>
[fields] =>
[category__in] => Array ( [0] => 1 )
[category__not_in] => Array ( )
[category__and] => Array ( )
[post__in] => Array ( )
[post__not_in] => Array ( )
[tag__in] => Array ( )
[tag__not_in] => Array ( )
[tag__and] => Array ( )
[tag_slug__in] => Array ( )
[tag_slug__and] => Array ( )
[ignore_sticky_posts] =>
[suppress_filters] =>
[cache_results] => 1
[update_post_term_cache] => 1
[update_post_meta_cache] => 1
[post_type] =>
[nopaging] =>
[comments_per_page] => 50
[no_found_rows] =>
[order] => DESC
)
*/
echo $myquery->post_count;
$obj = $myquery->post;
/*
stdClass Object (
[ID] => 257 [post_author] => 1 
[post_date] => 2012-04-20 08:45:21 
[post_date_gmt] => 2012-04-20 08:45:21 
[post_content] => 
[post_title] => Liber perfecto definitionem duo ne. 
[post_excerpt] => 
[post_status] => publish 
[comment_status] => open 
[ping_status] => open 
[post_password] => 
[post_name] => liber-perfecto-definitionem-duo-ne
[to_ping] => 
[pinged] => 
[post_modified] => 2012-04-20 08:45:37 
[post_modified_gmt] => 2012-04-20 08:45:37 
[post_content_filtered] => 
[post_parent] => 0 
[guid] => https://misha.agency/?p=257 
[menu_order] => 0 
[post_type] => post 
[post_mime_type] => 
[comment_count] => 1 
[filter] => raw
)
*/
echo $obj->ID;

Методы:

Я не стал включать сюда методы, смысл которых мне непонятен, возможно позднее я их добавлю.

$myquery->init();
echo $myquery->get('posts_per_page'); // выведет 5
$myquery->set('orderby', 'rand');
$myquery->the_post();
echo '<h2>'; the_title(); echo '</h2>'; // заголовок
echo $post->comment_count; // количество комментов
if($myquery->have_posts()): 
	while($myquery->have_posts()):
		$myquery->the_post();
		echo '<h2>'; the_title(); echo '</h2>';
	endwhile;
endif;
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии