Плагин WordPress «Поиск и фильтр» — отображение пользовательских категорий типов сообщений в results.php файл

#php #wordpress #plugins

#php #wordpress #Плагины

Вопрос:

Я манипулирую results.php файл из плагина Search and Filter Pro (WordPress). Я пытаюсь также отобразить категории для каждого из этих пользовательских типов записей. Но все, что я вижу на интерфейсе, — это «Массив» вместо названий категорий. Вот мой текущий код:

 if ( $query->have_posts() )
{
    ?>

<div class="pagination">
    
    <div class="nav-previous"><?php next_posts_link( 'Older posts', $query->max_num_pages ); ?></div>
    <div class="nav-next"><?php previous_posts_link( 'Newer posts' ); ?></div>
    <?php
        /* example code for using the wp_pagenavi plugin */
        if (function_exists('wp_pagenavi'))
        {
            echo "<br />";
            wp_pagenavi( array( 'query' => $query ) );
        }
    ?>
</div>

<?php

while ($query->have_posts())
{
    $query->the_post();
    
    $post_id = get_the_ID();
    $post_category = get_the_category();
    $description = get_field('product_description', $post_id);
    
    ?>

    <div class="product-div">
        
        <?php 
            if ( has_post_thumbnail() ) {
                echo '<p>';
        ?>
        <?php the_post_thumbnail("small");?>
        <?php
                echo '</p>';
            }
        ?>
        <h3><?php echo $post_category; ?></h3>
        <h2><?php the_title(); ?></h2>
        <?php echo $description;?>

        
    </div>
    
    <?php
    }
    ?>

   <?php
   }
   else
  {
   echo "No Results Found";
   }
  ?>
 

Что я делаю не так?

Ответ №1:

Просмотр функции get_the_category возвращает массив объектов WP_Term в соответствии со справочной страницей. Попробуйте <?php echo $post_category[0]->name; ?> или, если сообщению присвоено более одной категории, вы можете выполнить цикл, например:

 foreach($post_category as $category){
    echo $category->name;
}
 

Комментарии:

1. Это было именно то, что мне было нужно. Сработало как по волшебству. Большое спасибо!!