Отображение сообщений Wordpress на двух страницах - PullRequest
3 голосов
/ 02 августа 2010

У меня есть три страницы на моем сайте. Давайте назовем их home, page2 и page3. Моя «домашняя» страница настроена как статическая титульная страница. Моя страница page2 настроена как страница блога.

Я хочу следующее:

Я хочу, чтобы на странице2 отображались сообщения в блогах с определенной категорией (идентификатор которой известен).

И

Я хочу, чтобы на странице 3 отображались сообщения в блогах определенной категории (идентификатор которой известен).

PHP-код для отображения сообщений только определенной категории (или, фактически, в моем случае, отображения сообщений, исключая две категории):

<?php query_posts($query_string . '&cat=-3,-8'); ?>
<?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
        <div class="post" id="post-<?php the_ID(); ?>">
        <h3><a href="<?php the_permalink() ?>" rel="bookmark"
            title="Permanent Link to <?php the_title_attribute(); ?>">
            <?php the_title(); ?></a></h3>
        <?php the_excerpt('Read the rest of this entry &raquo;'); ?>
        </div><!-- /.post-->

Теперь в моем page.php у меня есть следующий код для отображения сообщений одной категории:

<?php
    // BEGIN IF PAGE is newspaper articles page
    if ( is_page('newspaper') ) {

        //BEGIN POST REGION

        query_posts($query_string . '&cat=8'); ?>
        <?php if (have_posts()) : ?>
            <?php while (have_posts()) : the_post(); ?>
                <div class="post" id="post-<?php the_ID(); ?>">
                <h3><?php the_title(); ?></h3>

                <?php the_content('Read more &raquo;'); ?>


                </div><!-- /.post-->

            <?php endwhile; ?>

        <?php else : ?>

        <?php endif; ?>

        <?php

    } //end if is_page
?>

Но на странице газеты (или странице 3 в этом вопросе) не отображаются правильные сообщения. Однако он работает для страницы статей (главной страницы блога index.php).

РЕДАКТИРОВАТЬ: Я также попробовал следующее (но это не работает). Я положил это в файл index.php:

<?php
if ( is_page('newspaper') || is_home() ) { // START if is home

?>
<?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
        <div class="post" id="post-<?php the_ID(); ?>">
            <h3><a href="<?php the_permalink() ?>" rel="bookmark"
                title="Permanent Link to
                <?php the_title_attribute(); ?>">
                <?php the_title(); ?></a></h3>

            <!--<p><?php the_time('F jS, Y') ?> <?php //the_author() ?></p>-->

            <?php the_excerpt('Read the rest of this entry &raquo;'); ?>


        </div><!-- /.post-->

    <?php endwhile; ?>

<?php else : ?>

<?php endif; ?>

<?php
} //end if is_home() or is_page()
?>

Опять же, это показывает сообщения на главной странице блога, но не показывает никаких сообщений на странице газеты ...

Поэтому вопрос прост (я думаю). Как мне показывать сообщения на другой странице, ДРУГОЙ, чем главная страница блога?

Спасибо! Amit

Ответы [ 4 ]

3 голосов
/ 02 августа 2010

Вместо того, чтобы исключать категории, исключать страницы и изменять стандартный цикл Wordpress, используйте новый запрос, например:

<?php $my_query = new WP_Query('category_name=mycategory&showposts=1'); ?>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<h3><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>">
<?php the_title(); ?></a></h3>
<?php the_excerpt('Read the rest of this entry &raquo;'); ?>
<?php endwhile; ?>

Это может использоваться внутри стандартного цикла WP и использоваться несколько раз в странице / публикации или шаблоне страницы без конфликтов. (Включите выполнение php, чтобы использовать его в редакторе страниц / сообщений). Справочник по функциям / WP Query «WordPress Codex

Это также хорошо работает для использования шаблонов страниц для создания разных страниц с сообщениями в блоге: Шаблоны страниц «WordPress Codex , но не забывайте, что WP также использует страницы категорий, в зависимости от вашей темы: Шаблоны категорий «WordPress Codex.

0 голосов
/ 02 августа 2010

Я думаю, что эта тема отвечает на вопрос и делает то, что вы хотите.http://wordpress.org/support/topic/show-only-x-category-posts-on-page?replies=9#post-1053767

0 голосов
/ 02 августа 2010

Использование строки «Газета» в is_page («газета») является потенциальным источником проблемы. Это может быть легко написано с ошибкой. Вы когда-нибудь пытались использовать идентификатор страницы? Что-то вроде

is_page('999')
0 голосов
/ 02 августа 2010

Я думаю, вы должны сделать разные шаблоны для разных страниц.Проверить эту ссылку http://codex.wordpress.org/Pages

...