Сделать домашнюю страницу WordPress пост-категорией? - PullRequest
2 голосов
/ 11 октября 2010

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

Можно ли установить домашнюю страницу в качестве категории сообщений?

Ответы [ 5 ]

3 голосов
/ 17 января 2013

Я надеюсь, что вы знаете о том, как настроить статическую страницу. Поэтому сначала создайте пустой файл .php, назовите его как хотите и поместите в другие файлы (index.php, arhive.php и т. Д.).

и затем введите следующий код

    <?php
/*
 * Template Name: Category based Homepage
 */
?>

<?php get_header(); ?>
<div class="main">

    <?php
    $cat_ID = '1'; //it should be your category ID, you can get the id of the category by going to categories and edit and then in url you can find the tag_ID.
    $posts_to_show = '10'; // number of posts from the category you want to show on homepage
    //query_posts("cat=$cat_ID&showposts=$posts_to_show");
    $category_posts = new WP_Query("cat=$cat_ID&showposts=$posts_to_show");
    //if (have_posts()) 
    if ($category_posts->have_posts())
        : $first = true;
        ?>
        <ul class="post-list">
            <?php
            //while (have_posts()) : the_post();
            while ($category_posts->have_posts()) : $category_posts->the_post();
                if ($first)
                    $class = "first-in-row";
                else
                    $class = "";
                $first = !$first;
                ?>
                <!-- Start: Post -->
                <li <?php post_class($class); ?>>
                    <?php the_post_thumbnail(); ?>
                    <p class="categories"><?php the_category(", "); ?></p>
                    <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a> <?php edit_post_link(__('Edit', 'your_theme_text_domain'), '', ''); ?></h2>
                    <p class="post-meta"><span class="date"><?php the_time(get_option('date_format')) ?></span> <?php if (comments_open()) : ?>, <span class="comments"><?php comments_popup_link(_x('0', 'comments number', 'your_theme_text_domain'), _x('1', 'comments number', 'your_theme_text_domain'), _x('%', 'comments number', 'your_theme_text_domain')); ?></span> <?php endif; ?> <span class="author"><?php the_author() ?></span></p>
                    <?php the_excerpt(); ?>
                    <p class="more"><a href="<?php the_permalink() ?>"><?php _e('Read More &raquo;&raquo; ', 'your_theme_text_domain'); ?></a></p>
                    <?php if (has_tag()): ?><p class="tags"><span><?php the_tags(""); ?></span></p><?php endif; ?>
                </li>
                <!-- End: Post -->
            <?php endwhile; ?>
        </ul>
    <?php else : ?>
        <h2 class="center"><?php _e('Not found', 'your_theme_text_domain'); ?></h2>
        <p class="center"><?php _e('Sorry, but you are looking for something that isn\'t here.', 'your_theme_text_domain'); ?></p>
    <?php
    endif;
    //wp_reset_query();
    wp_reset_postdata();
    ?>
</div>
<?php get_sidebar(); //optional?>
<?php get_footer(); ?>

и замените $ cat_ID и $ posts_to_show по своему вкусу. И я использовал оба метода запроса, чтобы приспособить его к вашим потребностям.

Надеюсь, это поможет кому-то, кто ищет подобное решение.

0 голосов
/ 26 октября 2014

Вам нужно только выполнить WP_Query перед циклом;

$query = new WP_Query("cat=10, paged=".get_query_var('paged'));

Затем используйте объект WP_Query для выполнения цикла;

if($the_query->have_posts()):
   while($the_query->have_posts()):
      the_title();
      the_content();
      //Use all the loop function normally
   endwhile;
endif;

Параметр paged используется для определения того, на какой странице вы находитесь, если вам нужно paginantion.

Вместо использования идентификатора категории, будет полезно получить идентификатор слагом.

$home = get_category_by_slug('home-category-slug');

Тогда ваш запрос будет таким

$the_query = new WP_Query("cat=".$home->cat_ID.", paged=".get_query_var('paged'));
0 голосов
/ 12 октября 2010

Я не уверен, что вы имеете в виду, когда ваша домашняя страница является категорией, то есть вы имеете в виду, что на вашей домашней странице будут отображаться только сообщения определенной категории?

0 голосов
/ 08 октября 2012

Да, это возможно. Перейдите на панель инструментов >> Настройка >> Чтение >> Статическая страница. Выберите страницу из выпадающего меню и СОХРАНИТЕ. На этой странице вы можете создавать свои собственные вещи ...

0 голосов
/ 12 октября 2010

Вы можете создать пользовательский шаблон, который имитирует страницу категории, используя get_posts и установить страницу, используя этот шаблон, в качестве домашней, но она не будет идеально динамичной в том смысле, что вам придетсязакодируйте категорию слаг или идентификатор в этот запрос.Предполагая, что вы не хотите часто менять эту категорию, это не должно быть проблемой.В качестве альтернативы, вы можете использовать wp_safe_redirect в шаблоне для перенаправления на страницу категории - это было бы, если вы хотите, чтобы пользователь был помещен непосредственно на реальную страницу категории, URL и все.

...