サポート » 使い方全般 » カスタムフールド画像のURLの取得について

  • 解決済 kemusi

    (@kemusi)


    はじめまして。

    wordpress初心者です。下記内容のご教授をお願いします。

    カスタムフィールドテンプレートにて画像アップロードしてそのURLを下記のコードで
    取得までは出来たのですが、画像が無い場合の代替え画像の出力ができません。
    一例として下記の内容で試してみましたがダメでした。

    <?php $imgtopic = get_post_meta($post->ID, "画像ID", false);
    foreach($imgtopic as $imgtopic){
    $imgtopic = wp_get_attachment_url($imgtopic);
    }
    if (!isset($imgtopic)) {
    $imgtopic = "代替え画像";
    
    ?>
    <img src="<?php echo $imgtopic; ?>"/>

    お手数ですが、よろしくお願い致します。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター jim912

    (@jim912)

    wp_get_attachment_url の返値は、ファイルのURLか、false になりますので、$imgtopic の中身が false かどうかを判定できれば、良いことになります。
    isset 関数は、変数がセットされていること、そして NULL でないことを検査するものですので、false の判定には使えません。これをふまえると

    if (!isset($imgtopic)) {

    ではなく、

    if ( ! $imgtopic ) ) {

    になるかと思います。

    こんにちは、

    アップロードする画像が複数でなければ、以下のように変更してwhile ループの内側に記述してください。

    $imgtopic = get_post_meta( $post->ID, "画像ID", true );
    $imgtopic = wp_get_attachment_url( absint( $imgtopic ) );
    
    if ( $imgtopic == false ) {
    	$imgtopic = "代替え画像";
    }
    ?>
    <img src="<?php echo esc_url( $imgtopic ); ?>" />

    提示していただいたコードは、

    $imgtopic = get_post_meta( $post->ID, "画像ID", false );

    上記の場合、配列が返ります。

    foreach($imgtopic as $imgtopic){

    $imgtopicが2回使われているので動作しません

    $imgtopic = "代替え画像";

    全角スペースが混入しているので、動作しません。

    トピック投稿者 kemusi

    (@kemusi)

    親切で分かりやすい説明ありがとうございました!
    無事表示出来るようになりました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「カスタムフールド画像のURLの取得について」には新たに返信することはできません。