Как выводить кастомные типы записей в стандартных рубриках или тегах
По умолчанию WordPress не включает кастомные типы записей в архивы категорий и тегов. Из-за этого вам нужно самостоятельно добавить кастомные посты в цикл.
Вы добавите следующие фрагменты в файл functions.php
вашей темы или, если хотите, в сборку настраиваемого плагина только для вашего собственного веб-сайта.
function my_cptui_add_post_types_to_archives($query) {
// We do not want unintended consequences.
if (is_admin() || !$query->is_main_query()) {
return;
}
if (is_category() || is_tag() && empty($query->query_vars['suppress_filters'])) {
$cptui_post_types = cptui_get_post_type_slugs();
$query->set(
'post_type',
array_merge(
array('post'),
$cptui_post_types
)
);
}
}
add_filter('pre_get_posts', 'my_cptui_add_post_types_to_archives');
В этом коде мы проверяем, если мы находимся в архиве категорий или архиве тегов, тогда получаем массив всех слагов постов на основе CPTUI
и объединяем его в массив с типом поста post
. Создав этот массив, мы передаем его в параметры запроса, чтобы WordPress знал, что нужно запрашивать все эти типы записей.
Добавление в архив только некоторых типов записей CPTUI.
function my_cptui_add_post_types_to_archives($query) {
// We do not want unintended consequences.
if (is_admin() || !$query->is_main_query()) {
return;
}
if (is_category() || is_tag() && empty($query->query_vars['suppress_filters'])) {
// Replace these slugs with the post types you want to include.
$cptui_post_types = array('my_post_type', 'my_other_post_type');
$query->set(
'post_type',
array_merge(
array('post'),
$cptui_post_types
)
);
}
}
add_filter('pre_get_posts', 'my_cptui_add_post_types_to_archives');
Этот фрагмент будет очень похож на первый, за исключением того, что мы включаем только определенные типы постов из CPTUI
.
Обязательно измените my_post_type
и my_other_post_type
, чтобы они действительно соответствовали слагам вашего пользовательского типа постов, которые вы хотите включить.
Если у вас только один архив категорий или архив тегов, то измените второй оператор if
следующим образом:
if ( is_category() && empty( $query->query_vars['suppress_filters'] ) )
или
if ( is_tag() && empty( $query->query_vars['suppress_filters'] ) )
Взято здесь.
Итак, суть проблемы — при переходе на 2-3 и так далее страницы блога возникает 404…
Простой способ подключить вместо стандартной пагинации WooCommerce woocommerce_pagination пагинацию с помощью плагина WP-PageNavi. Устанавливаем и…
Repeater Templates index.php home.php
Итак, суть проблемы — на некоторых сайтах перестала работать форма обратной связи Contact Form 7…