サポート » 使い方全般 » 同一ターム記事の一覧表示(日付とサムネイルがうまくいかない)

  • 解決済 anto990

    (@anto990)


    初めまして。
    ご飯、お酒という2つのカスタムポストタイプがあり、それぞれジャンルという共通のタクソノミーがあります。
    ・food-洋食、和食、中華 (genre)
    ・drink-洋食、和食、中華 (genre)

    今回、ご飯のシングルページ(single-food.php)に、同じジャンルのお酒一覧を表示させたいです。こちらを参考にしました。http://ja.forums.wordpress.org/topic/8619?replies=3
    パーマリンクとタイトルはうまく行きましたが、以下がうまく行きません。

    1. 画像サムネイルも取ってきたいがcatch_that_imageにジャンルが反映されない。
    2. 日付はうまく行くが、時間を消したい。
    どなたかご教示いただけますでしょうか?
    コード:

    <?php $term = array_shift(get_the_terms($post->ID, 'genre')); ?>
    <?php $tax_posts = get_posts('post_type=drink&posts_per_page=5&taxonomy=genre&term='.esc_html($term->slug));  if($tax_posts): ?>
    <?php foreach ($tax_posts as $tax_post):?>
    <img src="<?php echo catch_that_image($tax_post->ID); ?>">
    <?php echo esc_html($tax_post->post_date, 'Y.m.d'); ?>
    <a href="<?php echo get_permalink($tax_post->ID); ?>"><?php echo mb_substr($tax_post->post_title, 0, 20).'...';?></a>
    <?php endforeach; ?>

    見た目:
    画像(画像が無い時に表示されるデフォルトイメージが表示されてしまう)
    2013-01-01 12:00:00
    中華料理に合うお酒中華料理に合うお酒中華…

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

    (@jim912)

    1. catch_that_image のソースをご呈示ください
    2. mysql2date を使ってください。

    早速のお返事ありがとうございます!

    1. catch_that_imageはfunction.phpに以下のソースを書いています。他のページではうまく行っているので、$tax_postをどうにか渡す必要があるのかなと思いますが分かりません

    function catch_that_image() {
        global $post, $posts;
        $first_img = '';
        ob_start();
        ob_end_clean();
        $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
        $first_img = $matches [1] [0];
        if(empty($first_img)){ //Defines a default image
            $first_img = "/common/images/thumbnail.gif";
        }
    return $first_img;
    }

    2. 日付を出力するコードを変えて、思い通りに表示できました!

    <?php echo esc_html($tax_post->post_date, 'Y.m.d'); ?>

    <?php echo mysql2date('Y.m.d', $tax_post->post_date); ?>
    モデレーター jim912

    (@jim912)

    <?php foreach($tax_posts as $tax_post): ?>

    <?php foreach($tax_posts as $post): ?>

    にして、ループ内で$tax_post になったいる所を、$post に

    <?php endforeach; ?>

    <?php endforeach; wp_reset_postdata(); ?>

    としてください。

    そっか!!
    $tax_posts as $post
    とすればいいのですね!
    (リセットは書いていたのですが、こちらにコピペし忘れておりました。)

    初歩的なことが分かっておらず、お手間をおかけ致しました。

    ご飯のページにお酒のサムネイルが出るようになりました。
    ほんとうにありがとうございました!!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「同一ターム記事の一覧表示(日付とサムネイルがうまくいかない)」には新たに返信することはできません。