Как отобразить расширенное настраиваемое поле Wordpress внутри категории сообщений l oop? - PullRequest
0 голосов
/ 27 марта 2020

Как заменить стандартную ссылку категории публикации для расширенного настраиваемого поля?

Я отображаю соответствующие категории внутри каждого сообщения с кодом ниже

<?php while ( have_posts() ) : the_post(); ?>
   <h1><?php the_title(); ?></h1>
   <p>
     <strong>Found in:</strong>
     <?php 
     $id = get_the_ID();
     $cats = get_the_category($id);

     $c = 0; $n = 0;
     $c = count($cats);
     foreach ( $cats as $cat ):
       $n++; ?>
       <a href="<?php echo get_category_link($cat->cat_ID); ?>">
         <?php echo $cat->name; echo ( $n > 0 && $n < $c ? ', ' : ''); ?>
       </a>
    <?php endforeach; ?>
  </p>
<?php endwhile; ?>

Я хочу заменить URL-адрес категории по умолчанию, показанный в разделе href с моим настраиваемым полем категории, называемым custom url, для каждой категории внутри l oop.

1 Ответ

0 голосов
/ 27 марта 2020

Пара способов сделать это.

Этот параметр является "путём WP" по умолчанию с использованием get_post_meta(), подробнее здесь: https://developer.wordpress.org/reference/functions/get_post_meta/

<?php while ( have_posts() ) : the_post(); ?>
   <h1><?php the_title(); ?></h1>
   <p>
     <strong>Found in:</strong>
     <?php 
     $id = get_the_ID();
     $cats = get_the_category($id);

     $c = 0; $n = 0;
     $c = count($cats);
     foreach ( $cats as $cat ):
        $my_custom_url = get_post_meta($cat->cat_ID, 'custom_url', true);
       $n++; ?>
       <a href="<?php echo $my_custom_url; ?>">
         <?php echo $cat->name; echo ( $n > 0 && $n < $c ? ', ' : ''); ?>
       </a>
    <?php endforeach; ?>
  </p>
<?php endwhile; ?>

При использовании расширенных настраиваемых полей вы можете использовать get_field(): https://www.advancedcustomfields.com/resources/get_field/

<?php while ( have_posts() ) : the_post(); ?>
   <h1><?php the_title(); ?></h1>
   <p>
     <strong>Found in:</strong>
     <?php 
     $id = get_the_ID();
     $cats = get_the_category($id);

     $c = 0; $n = 0;
     $c = count($cats);
     foreach ( $cats as $cat ):
        $my_custom_url = get_field('custom_url', $cat->cat_ID);
       $n++; ?>
       <a href="<?php echo $my_custom_url; ?>">
         <?php echo $cat->name; echo ( $n > 0 && $n < $c ? ', ' : ''); ?>
       </a>
    <?php endforeach; ?>
  </p>
<?php endwhile; ?>
...