您可以在循环之前更改主查询,但重要的是在循环之后重置主查询。否则,您可能会在其他地方遇到问题。
免责声明:WordPress官方不鼓励这样做here. 然而,根据我的经验,它可以完美地实现你想要的行为。只是别忘了添加wp_reset_query(); 关闭循环后。
<?php query_posts(\'post_type=event\'); ?>
<?php if ( have_posts() ): while ( have_posts() ): the_post(); ?>
<!-- Stuff happening inside the loop -->
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>
Another approach (稍微复杂一些,但不改变主查询)将是:
<?php $args = array( \'posts_per_page\' => 10, \'post_type\' => \'event\', \'post_status\' => \'publish\' ); ?>
<?php $get_category_posts = get_posts( $args ); ?>
<?php foreach ( $get_category_posts as $post ) : setup_postdata( $post ); ?>
<!-- Stuff happening inside our custom \'loop\' -->
<?php endforeach; ?>
<?php wp_reset_postdata(); ?>
根据第二种解决方案,
your PHP-File should look like this:<?php get_header(); ?>
<?php $args = array( \'posts_per_page\' => 10, \'post_type\' => \'event\', \'post_status\' => \'publish\' ); ?>
<?php $get_category_posts = get_posts( $args ); ?>
<?php foreach ( $get_category_posts as $post ) : setup_postdata( $post ); ?>
<div class="class1">
<div class="class2">
<div class="class3">
<?php print_r( get_post_meta( get_the_ID() ) ); // Just for demo purposes ?>
<?php // $url = esc_url( get_post_meta( get_the_ID(), \'video_oembed\', true ) ); ?>
<?php // $embed = wp_oembed_get( $url ); ?>
<div class="class4">
<iframe id="class_frame" width="560" height="315" src="https://www.youtube.com/watch" allowfullscreen frameborder="0"></iframe>
</div>
</div>
<div class="class6">
<h1><?php the_title(); ?></h1>
<p><?php the_content(); ?></p>
</div>
</div>
</div>
<?php endforeach; ?>
<?php wp_reset_postdata(); ?>
<?php get_footer(); ?>
如果这不起作用,可能是您使用了错误的模板文件。如果不知道你的项目,我猜应该是
archive-event.phpUpdate:
结果是
taxonomy-event.php 在这种情况下。