自定义帖子类型的特色图片未显示内部循环

时间:2017-11-07 14:39:16

标签: wordpress

我有自定义帖子类型。每个帖子都有一个特色图片。在我的index.php中,我希望以其特色图片显示每个帖子的标题。以下代码显示标题,但不显示图像。

<?php $query = new WP_Query(
      array(
        'post_type' => 'platform',
        'status'    => 'publish'
      ) );
      if ( $query->have_posts() ) {
         while ($query->have_posts()) {
            $query->the_post(); ?>
            <p><?php the_title(); ?></p>
            <p><? if( has_post_thumbnail() ) {
                  the_post_thumbnail();
               } ?></p>
       <?php }
      }

      wp_reset_postdata();

wp_postmeta表格中,_thumbnail_id与每个post id相关联。在管理员中,图像也会显示。

我做错了什么?

更新

CPT注册码:

add_action('init', 'yrc_register_cpt_emfluence_platform_list', 0);

/**
 * Create and register new Custom Post Type: Emfluence Platform List
 * Fields: Name, Email, Platform List ID, Featured Image
 */
function yrc_register_cpt_emfluence_platform_list() {
    $labels = array(
        'name'                  => __('Platforms', 'yrc_csrvtool'),
        'singular_name'         => __('Platform', 'yrc_csrvtool'),
        'menu_name'             => __('Platforms', 'yrc_csrvtool'),
        'all_items'             => __('All Platforms', 'yrc_csrvtool'),
        'view_item'             => __('View Platform', 'yrc_csrvtool'),
        'ad_new_item'           => __('Add New', 'yrc_csrvtool'),
        'add_new'               => __('Add New', 'yrc_csrvtool'),
        'edit_item'             => __('Edit Platform', 'yrc_csrvtool'),
        'update_item'           => __('Update Platform', 'yrc_csrvtool'),
        'search_items'          => __('Search Platforms', 'yrc_csrvtool'),
        'not_found'             => __('Not found', 'yrc_csrvtool'),
        'not_found_in_trash'    => __('Not found in trash', 'yrc_csrvtool'),

    );

    $args = array(
        'labels'                =>  $labels,
        'description'           =>  __(' Platform List', 'yrc_csrvtool'),
        'supports'              => array('title', 'thumbnail' ),
        'hierarchical'          => false,
        'public'                => true,
        'show_in_menu'          => true,
        'menu_icon'             => 'dashicons-email',
        'show_in_nav_menus'     => true,
        'menu_position'         => 5,
        'exclude_from_search'   => true,
        'publicly_queryable'    => false,
        'capability_type'       => 'post',
    );

    register_post_type('platform', $args);
}

在主题中我也有缩略图的theme_support:

add_theme_support('post-thumbnails');

图像在管理员中非常明显,但在我使用the_post_thumbnail()内部循环时却不可见。

2 个答案:

答案 0 :(得分:2)

我已经看到了,你在这个波纹管代码之前以错误的方式启动了php

if( has_post_thumbnail() ) {

只有<?,但它应该是<?php 请检查您的第一个代码。 感谢

答案 1 :(得分:1)

问题在于你的php语法; <? if( has_post_thumbnail() ) {&gt;&gt;这里你在<?之后缺少php。因此在php的这段代码中没有任何内容被解释。所以正确的语法是....

<?php $query = new WP_Query(
  array(
    'post_type' => 'platform',
    'status'    => 'publish'
  ) );
  if ( $query->have_posts() ) {
     while ($query->have_posts()) {
        $query->the_post(); ?>
        <p><?php the_title(); ?></p>
        <p><?php if( has_post_thumbnail() ) { //missing php after <? here
              the_post_thumbnail();
           } ?></p>
   <?php }
  }

  wp_reset_postdata();