サポート » 使い方全般 » php構文の中にカスタムフィールド値を入れる

  • 解決済 keiichiy

    (@keiichiy)


    カスタムフィールドで指定した数値を使ってサムネイルの表示サイズを変えたいと考えています。

    例えば、
    <?php the_post_thumbnail(); ?>
    でサムネイルを読み込む時に、
    <?php the_post_thumbnail(‘size’); ?>
    とすればsizeで指定したサイズのサムネイルが表示されると思いますが、
    この、sizeの部分をカスタムフィールドで指定した任意の値を入れたいと考えています。

    イメージとしては、
    <?php echo post_custom(“size”)?>
    で呼び出した値を、
    <?php the_post_thumbnail(‘ここに入れたい’); ?>
    という感じです。

    phpはまだ勉強中でわからないことだらけです。
    よろしくご教授ください。

    ==

    [モデレータより]
    「【重要】お読みください」フォーラムに投稿されていましたので、フォーラムを移動しました。
    「【重要】お読みください」は、WordPress 日本語サイト運営チームから、みなさんへの連絡等に使用していますので、質問があっても回答がつかない場合があります。

    通常の質問は個別のフォーラムへ投稿してください。

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

    (@hideokamoto)

    $post_id;//投稿のID
    $key = 'size';//カスタムフィールドのキー
    $single = true;//文字列を取得する
    
     $thumb_size =  get_post_meta($post_id, $key, $single);
     the_post_thumbnail($thumb_size);

    こんな感じでどうでしょうか?
    post_idを取得して頂く必要はありますが・・・

    トピック投稿者 keiichiy

    (@keiichiy)

    <?php
    $post_id;
    $key = 'size';
    $single = true;
    $thumb_size =  get_post_meta($post_id, $key, $single);
    the_post_thumbnail($thumb_size);
    ?>

    と書いてみたのですが、
    どうも値が取得できていないみたいです。

    全体的には、
    「メニュー」というカスタムポストタイプの投稿で、
    カスタムタクソノミー「メニューカテゴリー」の中の
    「食べ物」のサムネイルを表示するという前提で、
    カスタムフィールドにてboxサイズを指定し、
    そのboxサイズに応じたサムネイルを表示したい
    という感じです。

    <div class="collect cf">
    <?php
    $args = array(
         'posts_per_page' => -1,
    	 'post_type' => 'menu',
    	 'tax_query' => array( /* カスタム分類 */
                array(
                    'taxonomy' => 'メニューカテゴリー',
                    'field' => 'slug',
                    'terms' => '食べ物',
                )
            )
    );
    ?>
    <?php $the_query = new WP_Query( $args );
    if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    <div class="box <?php echo (post_custom('size')); ?>">
    
    <div class="left">
    <a href="<?php the_permalink(); ?>"><div class="thum">
    
    <?php
    $post_id;
    $key = 'size';
    $single = true;
    $thumb_size =  get_post_meta($post_id, $key, $single);
    the_post_thumbnail($thumb_size);
    ?>
    
    </div></a>
    </div>
    
    <div class="right">
    <h4 class="title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4>
    <?php if(post_custom('price')): ?><div class="price"><?php echo nl2br(post_custom('price')); ?></div><?php endif; ?>
    <?php if(post_custom('cap')): ?><div class="cap"><?php echo nl2br(post_custom('cap')); ?></div><?php endif; ?>
    </div>
    
    </div>
    <?php endwhile; endif; ?><?php wp_reset_postdata(); ?>
    </div>
    gogoweb

    (@gogoweb)

    $post_idは投稿のIDを入れる必要があります。
    ループ内なら$post->IDで取得できますので
    $post_id = $post->IDに変更してください。

    トピック投稿者 keiichiy

    (@keiichiy)

    ありがとうございます!

    <?php
    $post_id = $post->ID;
    $key = 'size';
    $single = true;
    $thumb_size =  get_post_meta($post_id, $key, $single);
    the_post_thumbnail($thumb_size);
    ?>

    このようにしたら部解決しました!
    ありがとうございます!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「php構文の中にカスタムフィールド値を入れる」には新たに返信することはできません。