2ndkauboy
  • 0
Новичок

Как сделать страницу категории главной страницей блога?

  • 0

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

Share
  1. Обновлять

    Исключая все остальные решения, остается хотя бы одно template_redirect :

    function wpse121308_redirect_homepage() {
        // Check for blog posts index
        // NOT site front page, 
        // which would be is_front_page()
        if ( is_home() ) {
            wp_redirect( get_category_link( $id ) );
            exit();
        }
    }
    add_action( 'template_redirect', 'wpse121308_redirect_homepage' );
    

    Конечно, вам нужно будет пройти соответствующую категорию $id .

    Преимущество перенаправления в template_redirect том, что вы получаете только одну загрузку шаблона, а не второе перенаправление после загрузки шаблона.

    Обратите внимание, что вы можете подключиться к процессу еще раньше, например, в pre_get_posts, тем самым потенциально сохраняя весь запрос запроса:

    add_action( 'pre_get_posts', 'wpse121308_redirect_homepage' );
    

    Оригинальный ответ

    Если все, что вы хотите сделать, это отобразить определенную категорию в индексе сообщений блога, вы можете сделать это с помощью простого фильтра main $wp_query по адресу pre_get_posts :

    function wpse1862_pre_get_posts( $query ) {
        // Only modify the main query
        // on the blog posts index page
        if ( is_home() && $query->is_main_query() ) {
            $query->set( 'category_name', 'category-slug-here' );
        }
    }
    add_action( 'pre_get_posts', 'wpse1862_pre_get_posts' );
    

    Если вы хотите изменить шаблон, вы можете сделать одно из двух:

    1. Создать home.php с нужной разметкой
    2. Используйте template_redirect или home_template, чтобы заставить WordPress включить ваш category.php шаблон.

    Редактировать

    И если вы хотите, чтобы индексный URL-адрес сообщений в блоге выглядел так:

    www.example.com/main
    

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

    И если это ваша цель:

    Я очень хочу редирект. Я хочу, чтобы домашняя страница ( http://example.com/ ) перенаправляла на страницу категории (которая выглядит как http://example.com/main/ )

    … тогда принятый ответ верен для вашего варианта использования.

    • 0
    • Извини, нет. Я очень хочу редирект. Я хочу, чтобы домашняя страница ( http://example.com/ ) перенаправляла на страницу категорий (которая выглядит как http://example.com/main/ ), потому что на сайте я использую категории «Издания» (по странам), а по умолчанию — США (основной). Я хотел бы отредактировать описание награды, чтобы прояснить это.

      • 0
    • Вы можете отредактировать вопрос, чтобы прояснить это. И если ваш вопрос сильно отличается от ОП, вы должны были задать свой вопрос, а не ставить награду за этот. И: почему вам нужна переадресация, в частности? Перенаправление — это реализация, а не конечная цель. Опишите, чего вы на самом деле пытаетесь достичь. Перенаправление может быть единственной или лучшей реализацией, а может и не быть.

      • 0
    • Чип, причина/прецедент может быть другой, но вопрос точно такой же, поэтому я избегал другого вопроса. И, как вы можете видеть, аналогичный ответ уже был опубликован (хотя и с использованием query_posts менее рекомендуемого метода).

      • 0
    • Спасибо, это то, что я искал. WP действительно должен лучше документировать все эти специальные файлы PHP (например, Maintenance.php).

      • 0
    • Просто имейте в виду, что это почти удваивает нагрузку на сервер для домашней страницы. Ядро WP запускается дважды. Может быть важным фактором, если у вас есть приличное количество посетителей.

      • 0
    • Да, это тот самый. Загрузите этот шаблон в свою тему. Добавьте новую страницу, установите шаблон «Новая домашняя страница от Cat». Перейдите в настройки> чтение> выберите «статическую страницу»> главная страница = новая домашняя страница от Cat… и все готово…

      • 0
  2. Страница категории не может быть домашней страницей (просто так не работает).

    Есть еще два варианта:

    1. Ограничьте домашнюю страницу сообщениями из определенной категории (близко, но не то же самое).
    2. Перенаправление домашней страницы на фактическую страницу категории.

    Поскольку у вас все в порядке с перенаправлением, попробуйте следующее. Создайте home.php шаблон в каталоге вашей темы со следующим содержимым:

    <?php
    wp_redirect( 'http://www.yoursite.com/category/category-slug' );
    ?>
    

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

    • 0
  3. Самый семантический способ сделать это вместо использования перенаправления (дополнительного времени соединения) — создать собственный шаблон страницы.

    новая страница:

    /* Template Name: New Homepage by Cat */
    
    <?php query_posts('cat_id'=>'3');?>
    <--insert loop-->
    
    • 0
  4. просто добавьте фильтр категорий в ваш запрос index.php в вашем шаблоне. простые

    • 0
  5. Если вы хотите перенаправить в определенную категорию, то есть идентификатор категории 3, скопируйте содержимое из category.php и создайте другой шаблон, например, category-3.php. После этого

        * Template Name: New Homepage by Cat 3*/
    
        <?php query_posts('cat_id'=>'3');?>
        <--insert loop-->
    

    При чтении WordPress нам нужно установить домашнюю страницу как страницу сообщений, а для домашней страницы выбрать новую домашнюю страницу категории 3 в качестве шаблона.

    • 0

Оставить ответ

You must login to add an answer.