• 度々すみません。
    query_postsでは以下のスレッドで
    http://ja.forums.wordpress.org/topic/5478?replies=6
    で以下の回答を戴き

    《query_postsはcodexに「query_posts は WordPress ループ で表示される投稿を変更するために使います。」とあるとおり、ループ内に入れてしまうとループを変更してしまいます。もちろんループ内のショートコードで使用してもループを変更してしまうことになります。ですので、get_postsを使用したコードに作り変えることをお勧めします。》

    以下のコードをショートコードで呼び出すget_postsでの更新情報の出力にしてみました。

    function kosinDATA2() {

    $postS=get_posts(‘numberposts=5&category=9’);

    foreach($postS as $post) :
    setup_postdata($post);

    $data.=get_the_time(‘Y-m-d’).’ ‘.the_title(“”,””,false).’
    ‘;

    endforeach;

    return $data;
    }
    add_shortcode(‘kosin2’, ‘kosinDATA2’);

    しかし、カテゴリIDが該当するカテゴリがあれば、なんと指定カテゴリの記事のタイトルではなくトップページで使用してるタイトルとURLがそこのカテゴリの記事数と同数分出力されて連なって表示されてしまいます。

    以下の様な感じに
    該当するカテゴリ(cat=4)の記事数が3つの場合
    <トップページURL><トップページ>
    <トップページURL><トップページ>
    <トップページURL><トップページ>

    逆に該当するカテゴリが無い場合は白紙です。

    get_postsで該当記事のタイトルではなくトップページのタイトルが出力されてしまう原因は何なんでしょうか?

    改めてご教授宜しくお願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • get_the_time()the_title()も現在の時間・タイトルを取得します。したがってショートコードを本文ループ内で使用すれば現在の記事の時間・タイトルを取得してしまうと思います。
    方法としては$post->post_dateとか$post->post_titleとかする方法があると思います。

    トピック投稿者 OLIVELINE

    (@oliveline)

    shokun0803さん

    $post->post_dateとか$post->post_title
    を利用して試してみました。ようやくトップページ下に記事が連なる等の問題も解消され意図している形で更新情報を表示できる様になりました。
    ご教授どうもありがとうございます。

    以下が更新情報を正しく表示できたコードです。

    function kosinDATA() {

    $postS=get_posts(‘numberposts=5&category=4’);

    foreach($postS as $post) :
    setup_postdata($post);

    $data.=date(‘Y-m-d’, strtotime($post->post_date)).’ ID).'”>’.$post->post_title.’
    ‘;

    endforeach;

    return $data;
    }

    add_shortcode(‘kosin’, ‘kosinDATA’);

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「get_posts関数使用での更新記事出力が正しく行われない」には新たに返信することはできません。