Статьи

Получение большинства почтовых форматов: массовое обновление почтовых форматов

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

С сайтом любого приличного размера, который может стать кошмаром. Вместо этого позвольте мне показать вам, как автоматизировать процесс.

Вместо того, чтобы обновлять форматы сообщений вручную, мы можем использовать set_post_format() для обновления массивов сообщений. Первое, что вам нужно сделать, — это найти идентификаторы постов, которые нужно ввести в каждый формат поста, и создать один массив для каждого формата поста. Кстати, этот процесс будет намного проще, если у вас плагин просто показывает идентификаторы .

Когда у вас есть идентификаторы в массиве, в консоли отладки или в любом другом месте, где вы можете выполнить PHP, вы можете передать этот массив через set_post_format() , например так:

1
2
3
4
5
6
7
8
$videos = array(
     // put a comma separated list of posts IDs here
);
$format = ‘video’;
$videos = $posts;
foreach ( $posts as $post ) {
     set_post_format( $post, $format );
}

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

Вместо того, чтобы находить все идентификаторы постов для подачи в set_post_format() вручную, как в последнем примере кода, вы можете использовать WP_Query чтобы найти их для вас.

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

В приведенном ниже примере я покажу вам, как сделать запрос для всех постов с пользовательской таксономией «тип поста», имеющих термин «видео», и назначить их для формата поста «видео». Этот код работает, находя все подходящие посты, используя WP_Query и просматривая их. Но вместо того, чтобы зацикливать каждое сообщение для его отображения, оно обновляет формат сообщения с помощью set_post_format() .

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Set the post type, taxonomy, and taxonomy term for which to query
// Note: you can set taxonomy and term by ID or slug
$posts = array(
    ‘post_type’ => ‘post’,
    ‘taxonomy’ => ‘post-type’,
    ‘term’ => ‘videos’
);
 
// Set the post format to assign
$format = ‘video’;
$args = array(
    ‘post_type’ => $posts[ ‘post_type’ ],
    ‘tax_query’ => array(
        array(
            ‘taxonomy’ => $posts[ ‘taxonomy’ ],
            ‘field’ => ‘slug’,
            ‘terms’ => $posts[‘term’],
        ),
    ),
);
$query = new WP_Query( $args );
 
// Loop on the queried posts
if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {
        $query->the_post();
        set_post_format( $query->post->ID, $format );
    } // endwhile
} // endif have posts

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

Теперь у вас есть очень мало оправданий, чтобы не попасть на борт с почтовыми форматами.

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

Если вы беспокоитесь о том, что можете потерять возможность организовывать сайт по типу поста или по таксономии, не делайте этого! Заключительная часть этой серии покажет вам, как сделать это с форматами записей, потому что иногда вы можете иметь все это.