Показывать WordPress «стандартный» формат поста в шаблоне? - PullRequest
2 голосов
/ 20 сентября 2011

Я недавно добавил форматы записей в свою тему WordPress - на странице блога все в порядке, поскольку все они стилизованы соответственно. Однако на шаблоне моей домашней страницы я хочу показывать только «стандартные» форматы сообщений (без ссылок, галерей, аудио, видео и т. Д.).

В опциях моей темы я могу решить, сколько сообщений показывать на первой странице, для чего и используется 'dft_recent_number'.

Кто-нибудь знает, как я могу изменить приведенный ниже код, чтобы исключить все, кроме «стандартных» форматов сообщений?

<?php 
$query = new WP_Query();
    $query->query('posts_per_page='.get_option('dft_recent_number'));

    //Get the total amount of posts
$post_count = $query->post_count;

    while ($query->have_posts()) : $query->the_post(); 

 ?>

Любая помощь очень ценится!

Ответы [ 3 ]

4 голосов
/ 06 декабря 2012
// there's no post-format-standard so you should write it like this to exclude all other postpformats
array(
'taxonomy' => 'post_format',
'field' => 'slug',
'terms' => array('post-format-quote','post-format-audio','post-format-gallery','post-format-image','post-format-link','post-format-video'),
'operator' => 'NOT IN'
)
4 голосов
/ 20 сентября 2011

WP_Query не имеет прямого параметра для post_format.

Из моего быстрого исследования выяснилось, что форматы сообщений связаны через таксономии. Так, теоретически , с использованием параметров таксономии должно работать.

$args = array(
    'tax_query' => array(
        array(
            'taxonomy' => 'post_format',
            'field' => 'slug',
            'terms' => 'post-format-standard',
        )
    )
);
$query = new WP_Query( $args );

Примечание: вам необходимо обновить названия таксономии и слагов для вашего блога. Это должны быть имена, которые вы указали в файле functions.php.

1 голос
/ 06 января 2014

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

Я думаю, что более масштабируемое решение может бытьчто-то вроде этого:

$post_formats = get_theme_support( 'post-formats' );

$tax_query = false;
if ( $post_formats ) {
    $tax_query = array(
        array(
            'taxonomy' => 'post_format',
            'field'    => 'slug',
            'terms'    => $post_formats[0],
            'operator' => 'NOT IN'
        )
    );
}

// WP_Query arguments
$args = array(
    'post_type' => 'post',
    'order'     => 'DESC',
    'orderby'   => 'date',
    'tax_query' => $tax_query
);

Это исключит включенные форматы записей и также будет работать в случае, если WP добавит больше форматов записей (или добавит возможность добавлять больше).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...