catthr
7/15/2015 - 8:32 AM

Wordpress: Posts

Добавление, обновление и поиск постов

В wp много глобальных параметров и функций, которые их используют. Это информация по запрошенной записи, странице, так называемый контекст. Можно переводить вордпресс в любой контекст.

Для выбора записей есть класс WP_Query. Можно выбирать записи по различным параметрам. Перебирая записи в коллекции можно переключать вп на соответствующий контекст используя функцию the_post(). После цикла необходимо вернуть тарый контекст wp_reset_postdata()

// The Query
$the_query = new WP_Query( $args );

// The Loop
if ( $the_query->have_posts() ) {
    echo '<ul>';
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        echo '<li>' . get_the_title() . '</li>';
    }
    echo '</ul>';
} else {
    // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();

Если глобальный контекст не нужен, можно использовать функцию get_posts. Она возвращает массив объектов. Метод использует WP_Query.

Список параметров для поиска

// Свойства записи
{
   "ID":39,
   "post_author":"4",
   "post_date":"2015-07-15 13:00:30",
   "post_date_gmt":"2015-07-15 09:00:30",
   "post_content":"",
   "post_title":"\u0410\u043d\u043a\u0435\u0442\u0430 dfsa . sdfsdfs",
   "post_excerpt":"",
   "post_status":"publish",
   "comment_status":"open",
   "ping_status":"open",
   "post_password":"",
   "post_name":"anketa-dfsa-sdfsdfs",
   "to_ping":"",
   "pinged":"",
   "post_modified":"2015-07-15 13:00:30",
   "post_modified_gmt":"2015-07-15 09:00:30",
   "post_content_filtered":"",
   "post_parent":0,
   "guid":"http:\/\/afs.dev\/afs_survey\/anketa-dfsa-sdfsdfs\/",
   "menu_order":0,
   "post_type":"afs_survey",
   "post_mime_type":"",
   "comment_count":"0",
   "filter":"raw"
}
// Параметры по умолчанию
 $args = array(
	'posts_per_page'   => 5,
	'offset'           => 0,
	'category'         => '',
	'category_name'    => '',
	'orderby'          => 'date',
	'order'            => 'DESC',
	'include'          => '',
	'exclude'          => '',
	'meta_key'         => '',
	'meta_value'       => '',
	'post_type'        => 'post',
	'post_mime_type'   => '',
	'post_parent'      => '',
	'author'	   => '',
	'post_status'      => 'publish',
	'suppress_filters' => true 
);