我正在尝试在列表中的页面上输出自定义帖子类型“哲学”下的所有帖子。在类别“img-left”和“img-right”之间交替。
我可以让帖子显示所有“哲学”帖子,但是我想根据自定义类别在两个布局中布置帖子。
如果类别是“img-right”,我希望帖子显示左侧的文字和右侧的图像,反之亦然“img-left”。
我尝试过以下代码,但根本不起作用。
<?php
$args = array( 'post_type' => 'philosophy', 'posts_per_page' => 10 );
$loop = new WP_Query( $args );
if( in_category( 'img-right' ) ):
while ( $loop->have_posts() ) : $loop->the_post();
echo '<div class="col-md-12"><h2>';
the_title();
echo '</h2></div><div class="row content"><div class="col-md-6"';
the_content();
echo '</div><div class="col-md-5 offset-1 float-right">';
the_post_thumbnail('array(100,100)');
echo '</div></div>';
endwhile;
endif;
?>
删除“if”和“endif”我有代码列出一个布局中的所有帖子。我需要的是可以根据帖子的类别输出“img-right”和“img-left”布局的条件。我上面示例中显示的唯一布局是“img-right”。
非常感谢任何帮助。这个PHP让我头晕目眩!
答案 0 :(得分:2)
所以...在回答的人的帮助下,我用@Mohsin触及的CSS方法想出来了。
这是我的代码:
<div id="content" class="col-12" role="main">
<?php get_template_part('loops/page-content'); ?>
</div>
<div class="row">
<?php
$args = array( 'post_type' => 'philosophy', 'posts_per_page' => 10 );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
echo '<div class="row content"><div class="col-md-12"><h2>';
the_title();
echo '</div><div class="col-md-6">';
the_content();
echo '</div><div class="col-md-6">';
the_post_thumbnail();
echo '</div></div>';
endwhile;
?>
然后我应用了这个:
.row.content:nth-child(even) {
flex-direction: row-reverse;
}
我们是金色的。
感谢所有帮助过的人。
答案 1 :(得分:0)
如果我理解正确:
<?php $args = array( 'post_type' => 'philosophy', 'posts_per_page' => 10 ); ?>
<?php $loop = new WP_Query( $args ); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
<div class="col-md-12"><h2>
<?php the_title(); ?>
</h2></div>
<div class="row content">
<?php if( in_category( 'img-left' ) ): ?>
<div class="col-md-5 offset-1 float-left">
<?php the_post_thumbnail('array(100,100)'); ?>
</div>
<?php endif; ?>
<div class="col-md-6">
<?php the_content(); ?>
</div>
<?php if( in_category( 'img-right' ) ): ?>
<div class="col-md-5 offset-1 float-right">
<?php the_post_thumbnail('array(100,100)'); ?>
</div>
<?php endif; ?>
</div>
<?php endwhile; ?>
上面的代码会输出所有帖子,如果是img-left
类别,则会在左侧显示缩略图;如果在img-right
中,则会在右侧显示缩略图(如果将其归类为两者,则输出两者如果它既不是类别也不会。你可能想要不同的行为,但调整条件应该很简单。)
如果您的模板变得更复杂,我建议您使用get_sidebar()
等功能将部分移到模板部件/。