循环递增自定义字段

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

我为特定页面创建了4个自定义字段。

Field type:

<发布对象(我从帖子中抓取缩略图和标题)

Field names:

<现在,我在如下列表中显示内容:

<ul>
    <li>
        <?php 
            $featuredContentPostID = get_field(\'featured_content_1\')->ID;
            $selectedFeaturedContent = get_post( $featuredContentPostID );
        ?>
        <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>
    <li>
        <?php 
            $featuredContentPostID = get_field(\'featured_content_2\')->ID;
            $selectedFeaturedContent = get_post( $featuredContentPostID );
        ?>
        <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>
</ul>
如何在字段中循环并显示内容,而不必对其进行简化谢谢

UPDATE

我在自定义字段集中添加了一个新字段(选择框):

如何检索该选择字段(“升级内容”)的值?

UPDATE 2

推广内容的解决方案;向LI添加“活动”类:

<?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
    }
?>

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

我如何在字段中循环并显示内容,而不必对其进行简化?

此for循环将循环遍历四个字段名称,以避免重复。

<?php
    for ($i=1; $i<=4; $i++) {
            $fieldName = \'featured_content_\' . $i;
            $featuredContentPostID = get_field($fieldName)->ID;
            $selectedFeaturedContent = get_post( $featuredContentPostID );
            ?>
            <li>
                    <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
    }
?>
给它们取相同的名字是最佳做法吗?i、 e“特色内容”

通常情况下,我认为你最好使用更具体的名称——然而,如果插件添加了更“通用”的功能(即允许用户以这样的方式提供四个任意位的内容),那么这种命名方案就可以了。

最后一个问题-如何在自定义字段部分为其中一个添加标志,以便提升其中一个?

我会添加另一个自定义字段,可能是一个名为promoted_content_field. 在那里,用户可以选择四个中的哪一个进行升级(或不升级)。然后,在上面的循环中,只需添加一个检查,查看当前正在处理的字段是否是在promoted_content_field

相关推荐

使用WP_QUERY混合发布日期和发布元值

正在寻找使用自定义字段将旧帖子推送到WP\\u查询中的方法。例如,我今年有10篇文章,想将过去的2篇文章重新发布到自定义rss提要。因此,对于旧帖子,必须按照帖子日期和帖子元中的值对帖子进行排序:new post - (post date: 2018-11-11) new post - (post date: 2018-11-10) old post - (post date: 2017-05-01, post-meta date: 2018-11-09) new post - (