投稿時にメタボックスに入力されたデータがなくても表示されているカスタムフィールドが現在あります。
データが入力されていない場合、hr、title、およびulを削除する方法これが私が現在カスタムフィールドに取り込まなければならないコードです:
<?php if( have_rows('google_drive_links') ): ?>
<hr />
<h3>Attachments</h3>
<ul class="google-drive-links">
<?php while( have_rows('google_drive_links') ): the_row();
// vars
$content = get_sub_field('google_link_name');
$link = get_sub_field('google_link'); ?>
<li class="google-drive-link-item">
<a target="_blank" href="<?php echo $link; ?>"><?php echo $content; ?></a>
</li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
以下の行が返されている可能性があります。
have_rows('google_drive_links')
しかし、その後、サブフィールドには何も返されませんか。
$content = get_sub_field('google_link_name');
$link = get_sub_field('google_link');
Hrとulを作成する前に、これら2つの追加チェックを行うことができるでしょうか。
if (get_sub_field('google_link_name') && get_sub_field('google_link')){
// Create the hr and ul
}
Hrとh3をどこに表示するかに応じて、おそらく次のようになります。
<?php if( have_rows('google_drive_links') ): ?>
<?php while( have_rows('google_drive_links') ): the_row();
// vars
$content = get_sub_field('google_link_name');
$link = get_sub_field('google_link');
if ($content && $link) : ?>
<hr />
<h3>Attachments</h3>
<ul class="google-drive-links">
<li class="google-drive-link-item">
<a target="_blank" href="<?php echo $link; ?>"><?php echo $content; ?></a>
</li>
</ul>
<?php endif; ?>
<?php endwhile; ?>
<?php endif; ?>
複数行のリンクがある場合は、hrとtitleが一度だけ追加されるようにカウンタを追加することが可能です。次に例を示します。
<?php
$counter = 0;
if( have_rows('google_drive_links') ): ?>
<?php while( have_rows('google_drive_links') ): the_row();
// vars
$content = get_sub_field('google_link_name');
$link = get_sub_field('google_link');
if ($content && $link) :
$counter ++;
// If there is content and link, create hr and title for first item only, open ul and create li
if ($counter == 1) : ?>
<hr />
<h3>Attachments</h3>
<ul class="google-drive-links">
<?php endif; ?>
<li class="google-drive-link-item">
<a target="_blank" href="<?php echo $link; ?>"><?php echo $content; ?></a>
</li>
<?php endif; ?>
<?php
endwhile;
if ($counter > 0) : ?>
<!-- Close ul -->
</ul>
<?php endif; ?>
<?php endif; ?>