Вопрос или проблема
Я хотел узнать, может ли кто-то помочь мне. Я использовал эту функцию:
function add_taxonomies_to_pages() {
register_taxonomy_for_object_type( 'category', 'page' );
}
add_action( 'init', 'add_taxonomies_to_pages' );
if ( ! is_admin() ) {
add_action( 'pre_get_posts', 'category_and_tag_archives' );
}
function category_and_tag_archives( $wp_query ) {
$my_post_array = array('post','page');
if ( $wp_query->get( 'category_name' ) || $wp_query->get( 'cat' ) )
$wp_query->set( 'post_type', $my_post_array );
}
Это добавляет категории на страницы WordPress, но страницы архивов категорий не отображаются. У меня есть категория под названием Страницы приземления ассоциации с псевдонимом association-landing-pages
. Я разрабатываю локально. Когда я перехожу по адресу localhost/mywordpressitefolder/association-landing-page
, я получаю ошибку “страница/файл не найден”.
Ваш код сработал для меня; я смог увидеть страницы в архиве категории для Страниц приземления ассоциации по адресу http://domain.com/category/association-landing-pages
.
Похоже, вам нужно использовать URL:
localhost/mywordpressitefolder/category/association-landing-pages
Я заметил, что вы сказали, что псевдоним был association-landing-pages
, а затем вы посетили localhost/mywordpressitefolder/association-landing-page
(без s). Убедитесь, что вы используете правильный URL в зависимости от вашего псевдонима, и добавьте /category
тоже, как объяснялось выше.
Я бы также предложил поместить вашу проверку is_admin()
внутрь функции category_and_tag_archives()
. Я сделал несколько других изменений в оригинальном коде:
function add_taxonomies_to_pages() {
register_taxonomy_for_object_type( 'category', 'page' );
}
add_action( 'init', 'add_taxonomies_to_pages' );
function category_and_tag_archives( $wp_query ) {
$my_post_array = array( 'post', 'page' );
if ( ! is_admin() && is_category() && $wp_query->is_main_query() ) {
$wp_query->set( 'post_type', $my_post_array );
}
}
add_action( 'pre_get_posts', 'category_and_tag_archives' );
.
Ответ или решение
Проблема архивов категории для страниц в WordPress
Если вы столкнулись с проблемой, когда архивы категорий для страниц в WordPress не отображаются, это может быть вызвано несколькими факторами. Следующий текст поможет вам разобраться в ситуации и предложит пути решения.
1. Основная проблема
Вы правильно определили, что при попытке доступа к архиву категории, используя неправильный URL, возникает ошибка "файл не найден". Поскольку вы создали категорию с названием Association Landing Pages и слугом association-landing-pages, ваш правильный URL должен выглядеть так:
localhost/mywordpressitefolder/category/association-landing-pages
Обратите внимание на то, что в данном URL присутствует /category/
, что является обязательной частью для доступа к архивам категорий в WordPress.
2. Проверка кода
В вашем коде есть несколько улучшений, которые помогут обеспечить более надежное функционирование ваших архивов категорий. Вот откорректированный пример:
function add_taxonomies_to_pages() {
register_taxonomy_for_object_type( 'category', 'page' );
}
add_action( 'init', 'add_taxonomies_to_pages' );
function category_and_tag_archives( $wp_query ) {
$my_post_array = array( 'post', 'page' );
// Улучшенная проверка
if ( ! is_admin() && $wp_query->is_main_query() && is_category() ) {
$wp_query->set( 'post_type', $my_post_array );
}
}
add_action( 'pre_get_posts', 'category_and_tag_archives' );
3. Что делает данный код?
- Функция
add_taxonomies_to_pages()
добавляет возможность использовать категории для страниц. - Функция
category_and_tag_archives()
модифицирует главный запрос WordPress так, чтобы он возвращал как записи, так и страницы, если запрашивается архив категории.
4. Проверка на существование
Помимо проверки правильности URL, важно убедиться, что ваша категория на самом деле содержит страницы. Для этого перейдите в админ-панель WordPress, выберите раздел Страницы и посмотрите, назначены ли выбранной категории страницы.
5. Пермалинки
Если после всех проверок архивы категорий все еще не отображаются, попробуйте сбросить настройки постоянных ссылок. Это можно сделать, перейдя в Настройки > Постоянные ссылки и просто нажав кнопку "Сохранить изменения", не внося никаких изменений. Это обновит структуру ваших ссылок и может решить проблему.
6. Заключение
Убедитесь, что вы пользуетесь корректным URL, проверьте настройки и наличия контента в категориях, используйте рекомендованный код и, если необходимо, сбросьте настройки постоянных ссылок. Если после выполнения всех указанных шагов проблема сохраняется, это может указывать на наличие конфликта с другими установленными плагинами или темами. В этом случае стоит временно отключить их для диагностики проблемы.
Если у вас остались вопросы или нужна дальнейшая помощь, не стесняйтесь обращаться. Успехов в разработке!