在一个WordPress模板中使用两个循环

时间:2016-03-10 作者:hyp0thetical

您好,我正在尝试在我的WP模板中使用两个循环,因为我正在使用高级自定义字段来显示来自自定义帖子类型(学院)的信息

我已经在模板文件的顶部测试了我的代码(下面的标签“loop it not work”),它提取了正确的数据,但是当我将其放在模板中所需的位置时,它会从它所在的帖子中提取数据。

我怀疑这个问题可能与函数“your\\u custom\\u loop”有关,并且需要为我的新循环设置另一个类似的函数。非常感谢您的帮助谢谢

<?php
remove_action( \'genesis_loop\', \'genesis_do_loop\' );
add_action( \'genesis_loop\', \'your_custom_loop\' );

function your_custom_loop() { ?>

<article itemtype="http://schema.org/CreativeWork" itemscope="itemscope" class="post-<?php print $pageid; ?> page type-page status-publish entry">
<div class="entry-content" itemprop="text">

<?php
do_action( \'genesis_entry_header\' );
?>


// Loop which doesn\'t work: 
<?php

$post_object = get_field(\'resource_college\');

if( $post_object ): 

    // override $post
    $post = $post_object;
    setup_postdata( $post ); 

    ?>
    <div>
        <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
        <span>Post Object Custom Field: <?php the_field(\'field_name\'); ?></span>
    </div>
    <?php wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly ?>
<?php endif; ?>

// Regular loop
<?php

if(have_posts()) : while(have_posts()) : the_post();

1 个回复
最合适的回答,由SO网友:majick 整理而成

我想我以前见过这个问题,你需要设置global $post; 在上线之前能够使用setup_postdata($post); 因为它不会返回$post 对象,而是将其设置在全局范围内。

相关推荐

如何在Functions.php中链接style.css

我是WordPress的新手;我刚开始学习WordPress。我想把风格联系起来。函数中的css。php,但我无法解决这里可能存在的问题。谁能给我指出正确的方向吗?指数php<?php get_header(); ?> <?php if ( have_posts() ) { while ( have_posts() ) { the_post();