高级自定义字段对特定页面的排序顺序

时间:2013-07-26 11:06:33

标签: php wordpress wordpress-plugin wordpress-theming

我在wordpress项目中使用高级自定义字段扩展。为了在特定页面上显示一些自定义内容,我在一个页面中有大约20个自定义字段,我通过这样的方式在主题文件中调用它们。

<?php if(get_field('name1') != ""): ?>
            <div class="row-hardware">
            <div class="partner-left"><img src="<? the_field('image1'); ?>" /></div>
            <div class="partner-right">
                <?php the_field('description1'); ?>
            </div>
            </div>
        <?php endif; ?>

               <?php if(get_field('name2') != ""): ?>
            <div class="row-hardware">
            <div class="partner-left"><img src="<? the_field('images2'); ?>" /></div>
            <div class="partner-right">
                <?php the_field('description2'); ?>
            </div>
            </div>
        <?php endif; ?> 

我为每个字段调用它们,我在高级自定义字段中看到它在管理区域中有拖放排序区域,但我怎么能像在主题文件前端上排序一样调用它们。 有什么好的解决方案吗?

这里我附有图片

感谢

enter image description here

1 个答案:

答案 0 :(得分:1)

这样的事情应该有效(未经测试)

请注意<div class="clear"></div>。将其添加到CSS:

.clear {
    clear: both;
}

PHP:

<?php
$fields = get_field_objects();
$i = 0;

if ($fields) {
    foreach ($fields as $field_name => $field) {
        if (substr($field_name, 0, 5) == 'image' || substr($field_name, 0, 11) == 'description') {
            if (($i % 2) == 0) {
                echo '<div class="row-hardware">';
                echo '<div class="partner-left"><img src="'.$field['value'].'" /></div>';
            }
            else {
                echo '<div class="partner-right">'.$field['value'].'</div>';
                echo '<div class="clear"></div></div>';
            }
            $i++;
        }
    }
}
?>

最后但并非最不重要。它不是那么动态,但如果你的字段数量不断变化,你应该考虑创建一个自定义的帖子类型。

<?php for ($i = 1; $i <= 19; $i++) : ?>
<div class="row-hardware">
    <div class="partner-left"><img src="<?php the_field('image'.$i); ?>" /></div>
    <div class="partner-right"><?php the_field('description'.$i); ?></div>
<div class="clear"></div></div>
<?php endfor; ?>