Категория архив не работает для страниц

Вопрос или проблема

Я хотел узнать, может ли кто-то помочь мне. Я использовал эту функцию:

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, проверьте настройки и наличия контента в категориях, используйте рекомендованный код и, если необходимо, сбросьте настройки постоянных ссылок. Если после выполнения всех указанных шагов проблема сохраняется, это может указывать на наличие конфликта с другими установленными плагинами или темами. В этом случае стоит временно отключить их для диагностики проблемы.

Если у вас остались вопросы или нужна дальнейшая помощь, не стесняйтесь обращаться. Успехов в разработке!

Оцените материал
Добавить комментарий

Капча загружается...