Отображение произвольного типа записей с помощью шорткода
Я создал произвольный тип записей для моей темы WordPress и страницу, где эти записи отображаются. Но кто-нибудь знает, как создать шорткод, который будет отображать записи произвольного типа?

Думаю, ваш вопрос в основном заключается в том, как запрашивать записи пользовательского типа записей в шорткоде. Вам стоит ознакомиться с разделом WP_Query в WordPress: https://codex.wordpress.org/Class_Reference/WP_Query
В моем примере кода я создаю шорткод, который отображает заголовки последних опубликованных записей типа 'my-custom-post-type':
<?php
add_shortcode( 'shortcodename', 'display_custom_post_type' );
function display_custom_post_type(){
$args = array(
'post_type' => 'my-custom-post-type',
'post_status' => 'publish'
);
$string = '';
$query = new WP_Query( $args );
if( $query->have_posts() ){
$string .= '<ul>';
while( $query->have_posts() ){
$query->the_post();
$string .= '<li>' . get_the_title() . '</li>';
}
$string .= '</ul>';
}
wp_reset_postdata();
return $string;
}
?>
Поскольку шорткод выполняется внутри цикла, вам следует использовать wp_reset_postdata()
после завершения запроса, чтобы основной цикл снова работал как ожидается. Подробнее об этой функции можно узнать здесь: https://codex.wordpress.org/Function_Reference/wp_reset_postdata
Надеюсь, это даст вам хороший старт.

следует использовать wp_reset_postdata
после вторичного цикла. wp_reset_query
необходим только для восстановления глобальной переменной $wp_query
, которая в данном случае не перезаписывалась. wp_reset_query
также вызывает wp_reset_postdata
внутри себя, поэтому он работает и здесь, но его использование избыточно.
