0

wordpress プロジェクトで高度なカスタム フィールド拡張機能を使用しています。特定のページにいくつかのカスタム コンテンツを表示するために、1 つのページに約 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; ?> 
           

すべてのフィールドに対してそれらを呼び出しました。高度なカスタムフィールドで、管理領域にドラッグアンドドロップの並べ替え領域があるのを見ましたが、テーマファイルのフロントエンドでの並べ替えのように呼び出すにはどうすればよいですか。良い解決策はありますか?

ここに画像を添付しました

ありがとう

ここに画像の説明を入力

4

1 に答える 1

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; ?>
于 2013-07-26T13:59:49.647 に答える