J'ai actuellement un champ personnalisé qui s'affiche même s'il n'y a pas de données entrées dans la boîte méta lors de la publication.
Comment puis-je supprimer le hr, le titre et ul s'il n'y a pas d'entrée de données? Voici le code que j'ai actuellement pour extraire le champ personnalisé:
<?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; ?>
Il se peut que des lignes soient renvoyées pour:
have_rows('google_drive_links')
mais alors, rien n'est retourné pour les sous-champs?
$content = get_sub_field('google_link_name');
$link = get_sub_field('google_link');
Peut-être pourriez-vous mettre un chèque supplémentaire pour ces deux-là avant de créer les heures et les heures?
if (get_sub_field('google_link_name') && get_sub_field('google_link')){
// Create the hr and ul
}
Selon l'endroit où vous souhaitez que hr et h3 apparaissent, peut-être comme ceci:
<?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; ?>
S'il y a plusieurs lignes de liens, il devrait être possible d'ajouter un compteur pour s'assurer que le hr et le titre ne sont ajoutés qu'une seule fois, par exemple:
<?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; ?>