0

Я создал новый шаблон страницы и я отображать пользовательский пост типа на той же странице, как следует,как использовать пользовательский тип записи динамически

    <div class="col-sm-4"> 
        <?php $i = 1 ?> 
        <?php $posts = get_posts(array(
         'post_type' => 'astroalbums', 
         'posts_per_page' => -1 
         )); 
         foreach ($posts as $post) : start_wp(); ?> 
        <?php if ($i == 1): ?> 
        <?php $link = get_permalink($post->ID); ?> 
        <?php the_title('<h3 class="entry-title"><a href="' . esc_url(get_permalink()) . '" rel="bookmark">', '</a></h3>');?> 
        <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a> 
        <?php endif; ?> 
        <?php if($i == 3){$i = 1;} else {$i++;} ?> 
        <?php endforeach; ?> 

Мой таможенный пост тип «astroalbums», и я хочу использовать это динамически. У меня есть 4 пользовательских типа сообщений. Я хочу создать новую страницу на панели управления и назначить вышеприведенный шаблон страницы, который я создал. и каждая страница будет вызывать разные пользовательские типы сообщений. Это будет действительно большая помощь Спасибо, Trupti

ответ

0

Вы извлекая сообщения правильно, но это, кажется, что проблема находится внутри цикла foreach. Поскольку цикл WordPress по умолчанию не используется, вам необходимо вызвать функции, которые получают идентификатор сообщения как параметр или использовать свойства, присутствующие в объекте $post (который является экземпляром класса WP_POST) для отображения данных.

Одно из возможных решений:

<?php 
    $posts = get_posts([ 
     'post_type' => 'astroalbums', 
     'posts_per_page' => 1 
    ]); 
?> 

<?php foreach($posts as $post): ?> 
    <?php $link = get_permalink($post->ID); ?> 

    <h3 class="entry-title"> 
     <a href="<?php echo esc_url($link); ?>" rel="bookmark"> 
      <?php echo get_the_title($post->ID); ?> 
     </a> 
    </h3> 
    <a href="<?php echo esc_url($link); ?>"> 
     <?php echo get_the_post_thumbnail($post->ID); ?> 
    </a> 
<?php endforeach; ?>