janochen
  • 0
Мастер

Добавить нумерацию страниц в пользовательский шаблон, использующий пользовательские типы записей?

  • 0

Я не очень хорошо знаком с нумерацией страниц WordPress, поэтому не уверен, что это глупый вопрос.

Макет:

введите описание изображения здесь

Код:

<?php
/**
 * Template Name: Pictures Page
 * @package WordPress
 * @subpackage Prominent
 * @since Prominent 1.0
 */
get_header(); ?>
<div id="tagline">
    <div class="container">
        <?php // Run main loop (The Loop). ?>
        <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
        <div class="content0">
            <?php the_content(); ?>
        </div>
        <?php endwhile; ?>
    </div><!-- .container -->
</div><!-- #content-bottom -->
<div id="content">
    <div class="container">
        <div id="mainbar">
            <?php $custom_posts = new WP_Query(); ?>
            <?php $custom_posts->query('category_name=Pictures'); ?>
            <?php while ($custom_posts->have_posts()) : $custom_posts->the_post(); ?>
                <div class="content-block-2">
                    <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_content(); ?></a>
                </div>
            <?php endwhile; ?>
        </div><!-- #mainbar -->
        <?php get_sidebar(); ?>
    </div><!-- .container -->
</div><!-- #content-bottom -->
<?php get_footer(); ?>

Не знаю, как добавить нумерацию страниц, это вне моего понимания.

Share
  1. Вы проверили какой-либо из вопросов «Разбивка на страницы с пользовательским циклом» в соответствующем разделе справа?

    • 0
  2. Чтобы упростить себе жизнь, используйте один из множества плагинов для разбивки на страницы или те, которые я использую постоянно:

    и в случае этих двух это вопрос активации плагина, настройки нескольких параметров и просто добавления строки кода на вашу страницу, например, если вы используете WP-PageNavi, то в вашем коде измените

         <?php $custom_posts = new WP_Query(); ?>
        <?php $custom_posts->query('category_name=Pictures'); ?>
        <?php while ($custom_posts->have_posts()) : $custom_posts->the_post(); ?>
            <div class="content-block-2">
                <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_content(); ?></a>
            </div>
        <?php endwhile; ?>
    

    к

    <?php $custom_posts = new WP_Query(); ?>
    <?php $custom_posts->query(array('category_name' => 'Pictures', 'paged' => get_query_var('paged'))); ?>
    <?php while ($custom_posts->have_posts()) : $custom_posts->the_post(); ?>
        <div class="content-block-2">
            <a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_content(); ?></a>
        </div>
    <?php endwhile; ?>
    wp_pagenavi( array( 'query' => $custom_posts ) );
    wp_reset_postdata();
    

    как вы можете видеть, я добавил параметр «paged» в запрос, и после того, как ваш цикл закончился, я вызвал wp_pagenavi();, но более умным способом, ошибки void и wp_reset_postdata(); чтобы сбросить запрос.

    Теперь, если вы не хотите использовать плагин, вы можете использовать эту прекрасную функцию:

    function pagination( $query, $baseURL = get_bloginfo( $url ) ) {
        $page = $query->query_vars["paged"];
        if ( !$page ) $page = 1;
        $qs = $_SERVER["QUERY_STRING"] ? "?".$_SERVER["QUERY_STRING"] : "";
        // Only necessary if there's more posts than posts-per-page
        if ( $query->found_posts > $query->query_vars["posts_per_page"] ) {
            echo '<ul class="paging">';
            // Previous link?
            if ( $page > 1 ) {
                echo '<li class="previous"><a href="'.$baseURL.'page/'.($page-1).'/'.$qs.'">« previous</a></li>';
            }
            // Loop through pages
            for ( $i=1; $i <= $query->max_num_pages; $i++ ) {
                // Current page or linked page?
                if ( $i == $page ) {
                    echo '<li class="active">'.$i.'</li>';
                } else {
                    echo '<li><a href="'.$baseURL.'page/'.$i.'/'.$qs.'">'.$i.'</a></li>';
                }
            }
            // Next link?
            if ( $page < $query->max_num_pages ) {
                echo '<li><a href="'.$baseURL.'page/'.($page+1).'/'.$qs.'">next »</a></li>';
            }
            echo '</ul>';
        }
    }
    

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

    • 0

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

You must login to add an answer.