循环访问两组不同的自定义字段

时间:2015-10-08 作者:John

我创建了一个自定义字段(“Custom\\u name”),允许内容编辑器为创建的任何帖子指定“Custom\\u name”(与页面标题不同):

我为一个特定页面创建了4个自定义字段,让内容编辑器可以选择他想要的4篇文章:

特色内容1(字段类型-->“Post Object”)

  • 特色内容2
  • 特色内容3
  • 特色内容4
  • 推广的
      1. 在该页面上,我将特色内容显示为缩略图列表:

        <?php
            for ($i=1; $i<=4; $i++) {
                $fieldName = \'featured_content_\' . $i;
                $featuredContentPostID = get_field($fieldName)->ID;
                $selectedFeaturedContent = get_post( $featuredContentPostID );
                $promoted_content = get_field(\'promoted\');
                ?>
                <li class="<?php if($promoted_content == $fieldName) { echo \'active\'; }?>">
                        <a href="<?php echo esc_url( get_permalink($featuredContentPostID) ); ?>">
                                <?php echo get_the_post_thumbnail( $featuredContentPostID, \'thumbnail\' ); ?>
                                <span><?php echo $selectedFeaturedContent->post_title ?></span>
                        </a>
                </li>
                <?php
            }
        ?>
        
        我设法在不同的循环中查询并显示“Artister\\u name”:

        <?php   
            $artistNameArgs = array(
                \'meta_key\' => \'artist_name\'
            );
            $artistName = new WP_Query( $artistNameArgs );
        ?>
        
        <ul>
        <?php if( $artistName->have_posts() ): ?>
            <?php while ( $artistName->have_posts() ) : $artistName->the_post(); ?>
                <li><?php the_field(\'artist_name\'); ?></li>
            <?php endwhile; ?>
            <?php wp_reset_postdata(); ?>       
        <?php endif; ?>
        </ul> 
        
        如何将两者结合起来,使“artist\\u name”出现在缩略图LIs的LI中?

        谢谢

        UPDATE

        我设法做到了。以下是我的更新代码:

        <?php
                for ($i=1; $i<=4; $i++) {
                    $fieldName = \'featured_content_\' . $i;
                    $featuredContents = get_field($fieldName);
                    $featuredContentPostID = get_field($fieldName)->ID;
                    $selectedFeaturedContent = get_post( $featuredContentPostID );
                    $promoted_content = get_field(\'promoted\');
                    ?>
                    <li class="<?php if($promoted_content == $fieldName) { echo \'active\'; }?>">
                            <a href="<?php echo esc_url( get_permalink($featuredContentPostID) ); ?>">
                                    <?php echo get_the_post_thumbnail( $featuredContentPostID, \'thumbnail\' ); ?>
                                    <span>
                                        <?php
                                            foreach($featuredContents as $featuredContent){
                                                the_field(\'content_name\', $featuredContent);
                                            }
                                        ?>
                                    </span>
                            </a>
                    </li>
                    <?php
                }
        ?>
        

    1 个回复
    SO网友:Rarst

    你的问题听起来不像是“组合”循环,这在WP术语中通常是不同的。

    按照字面意思,您已经知道输出您想要的艺术家名称的部分-the_field(\'artist_name\').

    在第一个上下文中,可能会混淆它的是,它不是真正的正常WP循环。请注意,该调用如何没有指定应该为哪个帖子命名?如果省略,这通常来自全球邮报。在第一个代码段中,您根本没有设置post-globals。

    自从the_field() 我假设您使用的是众多自定义字段框架中的一个,甚至不是WP函数。您必须查阅其文档,了解如何检索ID明确提供的特定帖子的数据。

    相关推荐

    Custom loop not working

    因此,我创建了一个自定义循环,在该循环中,我的自定义帖子类型的帖子将出现,并且在其中,我向meta“layout\\u meta\\u box”声明了值“synosis”。自定义帖子类型正在工作,但元框值不工作。我做错了什么?<?php /* Template Name: Archief Synopsis Template Post Type: algemeen */ get_header(); $args = array( \'pos