我有一个自定义的发布后存档列表。
模板通常工作正常,但我正试图显示最近出版物的摘录(实际上是一个名为Abstract的自定义字段)。其余部分仅为标题/链接。
我想我可以用一个I++计数函数来完成,但每一页都会重新开始计数。
所以,我尝试在上面添加一个if-paged条件。模板仍然可以工作,但无法识别其第1页(我假设,否则我只是做错了)
相关代码如下
您将看到,我首先尝试将变量$abstract分配给循环外的自定义字段,然后在循环内回显它,如果它满足第1页和I=0的条件,否则理论上它将回显一个空变量。
我还尝试在循环中添加整个内容-我在这里同时包含了这两个内容,但实际上并没有同时包含这两个内容:
<?php $i = 0; ?>
<?php $paged = ( get_query_var(‘page’) ) ? get_query_var(‘page’) : 1;
if($paged == 1 ) {
$abstract = get_field(\'publication_abstract\');
} else { }
if (have_posts()) : while ( have_posts() ) : the_post(); ?>
<article id="post-<?php the_ID(); ?> publist-<?php echo $i; ?>" <?php post_class(); ?>>
<h1 class="main_title">
<a href="<?php echo get_permalink($post->ID); ?>">
<?php echo $post->post_title; ?></a></h1>
<div class="entry-content">
<?php $paged = ( get_query_var(‘page’) ) ? get_query_var(‘page’) : 1;
if($paged == 1 ) {
$abstract = get_field(\'publication_abstract\');
if ($i == 0) { ?>
<?php echo $abstract; ?>
<?php } } else { } ?>
</div>
</article>
我想我可以对第一个页面进行自定义查询,然后显示其余页面,但我尽量不弄乱分页。
另一件事:我还添加了一个过滤功能-按类别、按日期等,不希望任何过滤结果显示摘录。因此,当你登陆页面时,最新的页面会显示摘录,但一旦你过滤,就没有了。可能的
SO网友:Orlando P.
听起来有可能。存档页有一个内置查询,如果您想筛选,可以为该类别创建一个模板,例如archive-{category}.php
或者,如果您要过滤更多的信息,如所述,您应该使用。
add_action( \'pre_get_posts\', \'my_change_sort_order\');
function my_change_sort_order($query){
if(is_archive()):
//Set the order ASC or DESC
$query->set( \'order\', \'ASC\' );
endif;
};
循环时,可以修改输出。
if (have_posts()) : while ( have_posts() ) : the_post(); ?>
<?php if($wp_query->current_post == 0): ?>
//current_post is the index of the post within the loop
// this will be your first post
<?php echo $post->title ?>
<?php echo get_field(\'publication_abstract\'); ?>
<?php endif ?>
//this will be all other posts
//just the title no excerpt
<?php echo $post->title; ?>
<?php endwhile ?>