web-dev-qa-db-ja.com

注目の画像が存在しない場合は、投稿内容を表示する

この質問をすることを決心する前に、私はこのフォーラムをグーグル検索しましたが、それが重複しているように見えても、私の質問に対する答えは見つかりませんでした。

とにかく、私はその特徴的なイメージを使うカスタム投稿タイプを作りました。今、私は注目の画像が存在しないかどうかを設定したい、投稿内容を表示し、それによって私はそれが私の投稿にあるものは何でも表示することを意味します。

これまでのところ、functions.phpに以下を追加しました。

function zm_get_backend_preview_thumb($post_ID) {
    $post_thumbnail_id = get_post_thumbnail_id($post_ID);
    if ($post_thumbnail_id) {
        $post_thumbnail_img = wp_get_attachment_image_src($post_thumbnail_id, 'thumbnail');
        return $post_thumbnail_img[0];
    }
}

function zm_preview_thumb_column_head($defaults) {
    $defaults['featured_image'] = 'Image';
    return $defaults;
}

add_filter('manage_posts_columns', 'zm_preview_thumb_column_head');

function zm_preview_thumb_column($column_name, $post_ID) {
    if ($column_name == 'featured_image') {
        $post_featured_image = zm_get_backend_preview_thumb($post_ID);
            if ($post_featured_image) {
                echo '<img src="' . $post_featured_image . '" />';
            }

    }
}

add_action('manage_posts_custom_column', 'zm_preview_thumb_column', 10, 2);
}

そして私のページで私が代わりにビデオを特色にしたイメージを見せたいと思うところで、私は以下のコードを持っています:

<?php
// WP_Query arguments
$args = array (
    'post_type'              => array( 'zm_gallery' ),
);
// The Query
$query_gallery = new WP_Query( $args );

// The Loop
if ( $query_gallery->have_posts() ) {

    while ( $query_gallery->have_posts() ) {
        $query_gallery->the_post();

        echo '<ul>';
        echo '<li>';
        $name = get_post_meta($post->ID, 'ExternalUrl', true);

        if( $name ) { ?>
            <a href="<?php echo $name; ?>"target="_blank"><?php the_post_thumbnail(); ?></a>
           <?php
        } else {
            the_post_thumbnail();
        }   

        echo '</li>';
        echo '</ul>';
    }    
} else {
    if ( "" === $post->post_content ) {
        the_post_thumbnail();
    } else {
        the_content();
    }
}

// Restore original Post Data
wp_reset_postdata();
?>

どうぞよろしくお願いします。よろしくお願いします。

1
Nancy

the_post_thumbnailはサムネイルをエコーアウトしますので、試してみてください

if ( has_post_thumbnail() ) {
  the_post_thumbnail();
} else {
  the_content();
}

お役に立てれば

2
David

表示された投稿コンテンツが必要なページで、コードに2つの問題があることに気付きました。

  1. 私は以下を付けました:

        if ( "" === $post->post_content )
        {
             the_post_thumbnail();
        }
        else
        {
            the_content();
        } 
    

    間違った場所に。

    私はこれを次の行に置くべきだった:

    if( $name ) { ?>
            <a href="<?php echo $name; ?>"target="_blank"><?php the_post_thumbnail(); ?></a>
            <?php } else {
        //MY CODE SHOULD GO HERE
    } 
    
    1. 私がポイント1のコードの代わりに置くべきだった唯一のコードは、次のとおりです。

      the_content();
      

それが私に欲しいものを手に入れました。そして問題は解決しました。私は誰かが将来これが役に立つと思うことを願っています。 PS答えをフォーマットしようとしましたが、何か問題があります。私はそれがあるべき姿に見えるように編集を喜んで受け入れます。

0
Nancy