Как присвоить записи вордпресс определенный формат?

Решено

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

Добавить Комментарий
Ответ

Для того что бы добавить возможность в админки при создании поста выбирать его формат нужно в файл functions.php добавить следующий код:

 add_action( 'after_setup_theme', 'slug_post_formats' );
function slug_post_formats() {
    add_theme_support(
        'post-formats', array(
            'aside', 'image', 'video', 'audio', 'quote', 'link', 'gallery',
        )
    );
}
 

Для другого вида записей:

 add_post_type_support( 'page', 'post-formats' ); // для страниц

Теперь вы можете в своем шаблоне проверять принадлежит ли пост к определенному из форматов:

 if ( has_post_format( 'video' ) ) {
 //  Показываем что то для videp формата
 }
 

Также можно в зависимости от формата выводить соответствующий шаблон:

 if (have_posts()) :
 while (have_posts()) : the_post();
 if(!get_post_format()) {
 get_template_part('format', 'standard'); // подключим шаблон format-standard.php
 } else {
 get_template_part('format', get_post_format()); // подключим шаблон format-xxx.php где ххх - выбранный в админки формат
 }
 endwhile;
 endif;
 

Выводим в цикле посты про определенному формату(в примере видео формат):

$params = array(
    'tax_query' => array(
        array(
            'taxonomy' => 'post_format', // форматы постов - это таксономия
            'field'    => 'slug', // фильтруем по ярлыку таксономии
            'terms'    => array( 'post-format-video' ),
        )
    )
);
$q = new WP_Query( $params );

Добавить Комментарий

Ваш ответ

Размещая свой ответ, вы соглашаетесь с правилами сайта.