我是WordPress和PHP的新手。我在首页上发布特定帖子时遇到问题(但我不使用静态页面选项,使用index.php)。
我有2个类别(博客和提示),目前,我使用2种格式(标准和旁边)。博客仅分配给标准,而提示仅适用于旁白格式。我希望将它们显示在博客类别&中的帖子中。标准格式。
<?php if ( have_posts()) : ?>
<div id="ob-grid" class="grid-layout">
<?php if( !in_category('Blog') && !has_post_format()) : ?>
<?php $i=1; while (have_posts() && $i<5 ) : the_post();?>
<?php get_template_part( 'content', get_post_format() );?>
<?php $i++; endwhile; ?>
<?php else : ?>
<?php while (have_posts()) : the_post();?>
<?php get_template_part( 'content', get_post_format() );?>
<?php endwhile; ?>
<?php endif; ?>
</div>
<?php do_action( 'E2R_posts_navigation' ); ?>
<?php else : ?>
<?php get_template_part( 'content', 'none' ); ?>
<?php endif; ?>
问题是!in_category('Blog') && !has_post_format()
相互排斥并进入其他状态(显示所有帖子),我无法找到问题(在我使用之前代替&#39; Blog&#39 ;,&#39;提示&#39;但它也不起作用)。当我在while循环中放入!has_post_format()的条件时,它会正确过滤,但编号则无法正常工作。
帖子格式定义为:
add_theme_support(
'post-formats', array(
'aside',
'image',
'video',
'quote',
'link',
)
);
答案 0 :(得分:0)
我通过$ i迭代的位置更改找到了解决这个问题的方法。它看起来像:
<div id="ob-grid" class="grid-layout">
<?php if( !is_category('Blog')) : ?>
<?php $i=1; while (have_posts() && $i<5 ) : the_post();?>
<?php if( !has_post_format()) : ?>
<?php get_template_part( 'content', get_post_format() );?>
<?php $i++ ;?>
<?php endif;?>
<?php endwhile;?>
<?php endif;?>
我回到了这一点:好的,这里显示正确,但帖子的数量不正确(标准博客帖子的数量减去了旁边帖子的数量)。所以我说只有当帖子没有格式时才增加$ i - &gt; !has_post_format() - &gt;是标准的。这个WordPress函数的语法和功能很奇怪。但它对我有用。