Двадцать двенадцать тематических страниц выпуска
Я создал блог Wordpress более года назад, основав дочернюю тему на теме "двадцать двенадцать", я внес несколько незначительных изменений. Одним из этих изменений было добавление пользовательского содержимого портфолио, чтобы у меня была страница категории портфолио, на которой были ссылки на отдельные публикации в этой категории.
Проблема: Что-то, что в последнее время стало очевидным по мере роста числа моих сообщений, заключается в том, что когда я нажимаю на страницу главного меню/категорий, она отображает первое 10 сообщений в порядке, но если их более 10, ссылка "Более старое сообщение" в нижней части страницы предлагает перейти, но те же 10 сообщений (самые новые сообщения) отображаются снова, несмотря на то, что их 13, поэтому он должен перевернуться и показать 3 самых старых. Эту проблему можно увидеть, перейдя по ссылке на эту страницу ниже, в других каталогах в основном не более 10 сообщений. coder-tronics.com/categories/c-programming
Теперь, если я использую ссылку Категории боковой панели, выбирая Категория C-программирования, старые и новые ссылки на страницы работают нормально, отображая все 13 сообщений правильно, эта ссылка демонстрирует правильную работу.
Http://coder-tronics.com/category/c-programming
Я пытался понять, что я сделал не так, это было больше года назад, я следовал учебнику, чтобы сделать это, поэтому я не так хорошо знаком с Wordpress, как раньше. У меня есть custom-content.php который основан на content.php, а также шаблоны страниц для каждой категории портфолио т. е. программирование на языке Си и т.д. Я проверил custom-content.php и, похоже, все в порядке, так как были внесены некоторые незначительные поправки и была предпринята попытка устранить эту проблему, используя шаблон страницы портфолио для программирования на C content.php, это никак не повлияло на проблему.
Не опубликовал никакого кода, но рад это сделать, просто не уверен, в чем проблема в данный момент, и не хотел публиковать не относящийся к делу код.
Спасибо,
Муравей
Отредактировано добавлена ссылка на код комментарий Питера ниже
<?php
/*
Template Name: C Programming Category page
*/
get_header(); ?>
<section id="primary" class="site-content">
<div id="content" role="main">
<?php query_posts('category_name = C Programming'); ?>
<?php if ( have_posts() ) : ?>
<header class="archive-header">
<?php if ( category_description() ) : // Show an optional category description ?>
<div class="archive-meta"><?php echo category_description(); ?></div>
<?php endif; ?>
</header><!-- .archive-header -->
<?php
/* Start the Loop */
while ( have_posts() ) : the_post();
/* Include the post format-specific template for the content. If you want to
* this in a child theme then include a file called called content-___.php
* (where ___ is the post format) and that will be used instead.
*/
get_template_part( 'content-custom', get_post_format() );
endwhile;
twentytwelve_content_nav( 'nav-below' );
?>
<?php else : ?>
<?php get_template_part( 'content', 'none' ); ?>
<?php endif; ?>
</div><!-- #content -->
</section><!-- #primary -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
1 answers
Вам вообще не следует использовать query_posts
. Все объяснено в этом посте Я недавно это сделал. Проверьте также все ссылки, которые я дал в этом посте
Большая проблема, почему ваша разбивка на страницы не работает, заключается в том, что функция разбиения на страницы по умолчанию двадцать двенадцать, twentytwelve_content_nav
, не предусматривает возможности для пользовательских запросов. Однако вы можете переопределить эту функцию, так как она заключена в условный оператор if ( ! function_exists() )
.
Во-первых, для вашего пользовательского запроса. Как сказано, не используйте и никогда не используйте query_posts
, в большинстве случаев это не удается сразу при разбиении на страницы. Здесь вы собираетесь использовать WP_Query
. Поэтому измените шаблон своей страницы на этот (здесь только один пункт, category_name
использует категорию slug, а не имя)
<?php
/*
Template Name: C Programming Category page
*/
get_header(); ?>
<div id="primary" class="site-content">
<div id="content" role="main">
<?php
$args = array(
'category_name' => 'c-programming'
);
$my_query = new WP_Query($args); ?>
<?php if ( $my_query->have_posts() ) : ?>
<?php /* Start the Loop */ ?>
<?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?>
<?php get_template_part( 'content', 'custom' ); ?>
<?php endwhile; ?>
<?php twentytwelve_content_nav( 'nav-below' ); ?>
<?php else : ?>
<article id="post-0" class="post no-results not-found">
<?php if ( current_user_can( 'edit_posts' ) ) :
// Show a different message to a logged-in user who can add posts.
?>
<header class="entry-header">
<h1 class="entry-title"><?php _e( 'No posts to display', 'twentytwelve' ); ?></h1>
</header>
<div class="entry-content">
<p><?php printf( __( 'Ready to publish your first post? <a href="%s">Get started here</a>.', 'twentytwelve' ), admin_url( 'post-new.php' ) ); ?></p>
</div><!-- .entry-content -->
<?php else :
// Show the default message to everyone else.
?>
<header class="entry-header">
<h1 class="entry-title"><?php _e( 'Nothing Found', 'twentytwelve' ); ?></h1>
</header>
<div class="entry-content">
<p><?php _e( 'Apologies, but no results were found. Perhaps searching will help find a related post.', 'twentytwelve' ); ?></p>
<?php get_search_form(); ?>
</div><!-- .entry-content -->
<?php endif; // end current_user_can() check ?>
</article><!-- #post-0 -->
<?php endif; // end have_posts() check ?>
<?php wp_reset_postdata(); ?>
</div><!-- #content -->
</div><!-- #primary -->
<?php get_sidebar( 'front' ); ?>
<?php get_footer(); ?>
Теперь скопируйте функцию twentytwelve_content_nav
в свою дочернюю тему functions.php . Вы собираетесь изменить это. Вот измененный код. Проработайте это и проверьте изменения, я прокомментировал их
function twentytwelve_content_nav( $html_id ) {
global $wp_query, $my_query; // add your custom query variable
$html_id = esc_attr( $html_id );
if ( $wp_query->max_num_pages > 1 || $my_query->max_num_pages > 1 ) : ?> // Add your custom query to the max_num_parameter
<nav id="<?php echo $html_id; ?>" class="navigation" role="navigation">
<h3 class="assistive-text"><?php _e( 'Post navigation', 'twentytwelve' ); ?></h3>
<div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">←</span> Older posts', 'twentytwelve' ) ); ?></div>
<div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">→</span>', 'twentytwelve' ) ); ?></div>
</nav><!-- #<?php echo $html_id; ?> .navigation -->
<?php endif;
}
Это должно сработать