Я создал собственный шаблон для страницы категории сообщений, содержащей настраиваемые поля сообщений.Это страница «События», где я прячу последние сообщения (event_date_end).Проблема в том, что post_per_page не работает.Я думаю, что это несколько унаследовано от темы, которая составляет до 8 сообщений.Я хочу отобразить все сообщения (кроме прошлых событий).
/*
Events Category Template
*/
// get posts
$posts = array(
'posts_per_page' => -1,
'post_type' => 'post',
'post_status' => 'publish',
'orderby' => 'meta_value',
'meta_key' => "event_date_end",
'meta_compare' => '>=',
'meta_value' => date("Ymd"),
'orderby' => 'meta_value_num',
'order' => 'ASC',
);
$posts=get_posts($posts);
get_header(); ?>
<div id="main-content">
<div class="container">
<h1 class="cat-title"><?php echo single_cat_title(); ?></h1>
<div id="content-area" class="clearfix">
<div id="left-area">
<?php
if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
<!-- Divi Library for Events-->
<?php echo do_shortcode('[et_pb_section global_module="2564"][/et_pb_section]');?>
<?php
endwhile;
if ( function_exists( 'wp_pagenavi' ) )
wp_pagenavi();
// else
// get_template_part( 'includes/navigation', 'index' );
// else :
// get_template_part( 'includes/no-results', 'index' );
endif;
?>
</div> <!-- #left-area -->
<?php get_sidebar(); ?>
</div> <!-- #content-area -->
</div> <!-- .container -->
</div> <!-- #main-content -->
<?php
get_footer();
Я также попытался добавить приведенный ниже код в functions.php, который работал, но он не скрывает прошлые события (фактически добавляет пустые записи ввнизу):
// Increase limit of posts on Events/Agenda pages
add_filter('pre_get_posts', 'posts_in_category');
function posts_in_category($query){
if ($query->is_category) {
if (is_category('agenda')) {
$query->set('posts_per_archive_page', -1);
}
if (is_category('agenda-fr')){
$query->set('posts_per_archive_page', -1);
}
}
}