• 解決済 momo-sophia

    (@momo-sophia)


    以下のようなサイドバーを作成します。

    ■採用情報
     □新卒採用
     □中途採用

    ■商品情報
     □商品1
     □商品2

    □は固定ページを作成し、カスタムフィールドcategoryに、■の値を保有しました。

    <?php
    $my_query = new WP_Query();
    $my_query->query('post_type=page&meta_key=category&meta_value=商品情報');
    
    if ($my_query->have_posts()):
    //カテゴリを出力
    echo get_post_custom_values('category');
    ?>
        <ul>
        <?php
        //ページリストを出力
    	 while ($my_query->have_posts()) : $my_query->the_post(); ?>
            <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
        <?php endwhile; ?>
        </ul>
    <?php endif; ?>

    リストは出力されるのですが、カスタムフィールドの中身(商品情報)を表示することができません。

    カテゴリごとにサイドメニューを表示できれば、やり方は何でもいいです。
    よろしくご教授願います。

    関連質問:http://ja.forums.wordpress.org/topic/10711?replies=1

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • カレントになっている投稿が不明、若しくは現在のURLそのままの情報です
    momo-sophia様の欲しい記事情報は上記の書き方ですと$my_queryに入っているので
    get_post_custom_values(‘category’);
    の第二匹数に$my_query->IDで記事のidを渡すか
    そのままwhileで$my_query->have_posts()をまわすかする必要があります。

    http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_post_custom_values

    トピック投稿者 momo-sophia

    (@momo-sophia)

    jdbb様 アドバイスありがとうございます。

    $CATEGORY = get_post_custom_values('category',$my_query->ID);
    echo $CATEGORY[0];

    にしてみました。
    第2引数は、「カスタムフィールドの値を取得したい投稿の ID」とのことですが、
    $my_queryで抽出したはずの投稿ではなく、メインコンテンツに表示されている投稿の情報が出力されているようです?

    また本当は、meta_valueを指定せずに抽出して、meta_valueの値ごとにリスト表示できればよいのですが、ループ内でget_post_meta($my_query->ID, ‘category’)で情報取得しようとしても、できませんでした。

    トピック投稿者 momo-sophia

    (@momo-sophia)

    試行錯誤で、以下のような記述になりました。

    <?php
    $my_query = new WP_Query( array ( 'post_type' => 'page', 'meta_key' => 'category', 'order' => 'ASC' ) );
    
    $new_CATEGORY = "";
    $old_CATEGORY = "";
    
    if ($my_query->have_posts()):
    
    	 while ($my_query->have_posts()) : $my_query->the_post();
    		$new_CATEGORY = get_post_meta(get_the_ID(), 'category',true);
    		?>
    
    		<?php
    		if($new_CATEGORY != $old_CATEGORY)
    		{
    			//カテゴリを出力
    			?>
    			<?php echo $new_CATEGORY;?>
                <?php $old_CATEGORY = $new_CATEGORY;
    		}
    		?>
    
            <!--リストを出力 -->
            <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    
    	<?php endwhile; ?>
    
    <?php endif; ?>

    希望の動きにはなっているのですが、当方初心者のため、アドバイス等あったらお願いしたいです。

3件の返信を表示中 - 1 - 3件目 (全3件中)

トピック「固定ページのカテゴリとしてカスタムフィールドを使う」には新たに返信することはできません。