サポート » 使い方全般 » タイトルが表示されない

  • 一般的な「投稿 (post)」記事と2種類のカスタム投稿タイプの記事があり、1ページ内に各種最新記事一覧を表示したいと考えております。
    カスタム投稿タイプは正常に表示されるのですが、「投稿 (post)」記事のタイトル部分(<?php the_title(); ?>)のみ表示されない状態です。
    方法はそれぞれ別phpファイルで管理し、固定ページでそれぞれショートコードで読み込んでいます。
    問題の「投稿 (post)」記事のphpは以下の通りです。

    =

    <?php global $post;
    $args = array(
        'post_type'  => 'post',
        'numberposts' => 2
    );
    $myposts = get_posts( $args );
    foreach( $myposts as $post ) :  setup_postdata($post);?>
              <li> <a>">
            <div><?php the_post_thumbnail( array(240,124) ); ?></div>
            <dl>
              <dt><span><?php the_time('Y/m/d'); ?></span>
                <h3>
                  <?php the_title(); ?>
                </h3>
              </dt>
              <dd>
                <?php the_excerpt(); ?>
              </dd>
                </dl>
                </a> </li>
    <?php endforeach; ?>

    =

    日時やサムネイルなどタイトル以外は全て正常に読み込まれます。
    解決策をご教授頂ければ幸いです。

    • このトピックはwp_cast1eが3年、 11ヶ月前に変更しました。
    • このトピックはwp_cast1eが3年、 11ヶ月前に変更しました。
    • このトピックはTakayuki Miyoshiが3年、 11ヶ月前に変更しました。
15件の返信を表示中 - 1 - 15件目 (全18件中)
  • foreach( $myposts as $post ) で global な $postのデータを $mypostsで上書きしているように見えるので
    global $post; の行を削除したらどうなりますか。

    ご回答ありがとうございます。

    >global $post; の行を削除したらどうなりますか。
    ご指示の通り削除したのですが表示されませんでした。

    ちなみに、このページを参考に、以下の内容に修正してみたのですがやはり表示されませんでした。

    <?php
    $paged = (int) get_query_var('paged');
    $args = array(
     'posts_per_page' => 3,
     'paged' => $paged,
     'orderby' => 'post_date',
     'order' => 'DESC',
     'post_type' => 'post',
     'post_status' => 'publish'
    );
    $the_query = new WP_Query($args);
    if ( $the_query->have_posts() ) :
     while ( $the_query->have_posts() ) : $the_query->the_post();
    ?>
    <div><?php the_post_thumbnail( array(240,124) ); ?></div>
    <dl>
    <dt><span><?php the_time(‘Y/m/d’); ?></span>
    <h3>
    <?php the_title(); ?>
    </h3>
    </dt>
    <dd>
    <?php the_excerpt(); ?>
    </dd>
    </dl>
    <?php endwhile; endif; ?>

    その他にお心当たりのある点などご指摘頂ければ幸いです。

    modlook

    モデレーター Takayuki Miyoshi

    (@takayukister)

    投稿内でコードを引用する際には入力欄上部の code ボタンを使用してコードの部分を (`) で囲んでください。そうしないとページの表示が崩れる場合があります(崩れていたので修正しました)。

    Takayuki Miyoshi様

    投稿内でコードを引用する際には入力欄上部の code ボタンを使用してコードの部分を (`) で囲んでください。

    失礼いたしました。
    以降気をつけたいと思います。

    修正のご対応もありがとうございました。

    こんにちは、

    1ページ内に各種最新記事一覧を表示

    それぞれのループの直後で、リセット処理は行われていますか?

    
    WP_Query ---- wp_reset_postdata();
    
    setup_postdata() ---- wp_reset_postdata();
    
    query_posts() ---- wp_reset_query();
    

    the_excerpt(); の抜粋は出るのでしょうか。

    WP_Queryを使うなら、

    <?php echo $the_query->post_title; ?>

    でタイトルでませんか。

    nobita様

    ご回答ありがとうございます。

    <?php
    $paged = (int) get_query_var('paged');
    $args = array(
     'posts_per_page' => 3,
     'paged' => $paged,
     'orderby' => 'post_date',
     'order' => 'DESC',
     'post_type' => 'post',
     'post_status' => 'publish'
    );
    $the_query = new WP_Query($args);
    if ( $the_query->have_posts() ) :
     while ( $the_query->have_posts() ) : $the_query->the_post();
    ?>
    <div><?php the_post_thumbnail( array(240,124) ); ?></div>
    <dl>
    <dt><span><?php the_time(‘Y/m/d’); ?></span>
    <h3>
    <?php the_title(); ?>
    </h3>
    </dt>
    <dd>
    <?php the_excerpt(); ?>
    </dd>
    </dl>
    <?php wp_reset_postdata(); ?>
    <?php endwhile; endif; ?>

    以上の場所への記述であっておりますでしょうか?
    こちらの内容で試したのですが表示されませんでした。

    kimipooh様

    ご回答ありがとうございます。

    the_excerpt(); の抜粋は出るのでしょうか。

    はい、そちらは問題なく取得できている状態です。

    <?php
    $paged = (int) get_query_var('paged');
    $args = array(
     'posts_per_page' => 3,
     'paged' => $paged,
     'orderby' => 'post_date',
     'order' => 'DESC',
     'post_type' => 'post',
     'post_status' => 'publish'
    );
    $the_query = new WP_Query($args);
    if ( $the_query->have_posts() ) :
     while ( $the_query->have_posts() ) : $the_query->the_post();
    ?>
    <div><?php the_post_thumbnail( array(240,124) ); ?></div>
    <dl>
    <dt><span><?php the_time(‘Y/m/d’); ?></span>
    <h3>
    <?php echo $the_query->post_title; ?>
    </h3>
    </dt>
    <dd>
    <?php the_excerpt(); ?>
    </dd>
    </dl>
    <?php wp_reset_postdata(); ?>
    <?php endwhile; endif; ?>
    

    以上の記述であっておりますでしょうか?
    こちらの内容で試したのですが表示されませんでした。

    とりあえず他のところに修正コードのタイトルの部分だけ書いてみたらどうでしょう。
    あとvar_dump($the_query)とかprint_r($the_query)とか
    最初のは ’ だけど それ以降は Y/m/dの頭が ‘ のようですが関係ないかな。

    
    <?php wp_reset_postdata(); ?>
    <?php endwhile; endif; ?>
    

    ループ終了後に配置してください

    
    endwhile; 
    wp_reset_postdata(); 
    endif;
    ?>
    
    

    テンプレートの中に、3つのループがあると思いますが、問題の出ているループ以外のコードをコメントアウトしても問題は継続しますか?

    • この返信は3年、 11ヶ月前にnobitaが編集しました。

    oisit様
    ご回答ありがとうございます。

    とりあえず他のところに修正コードのタイトルの部分だけ書いてみたらどうでしょう。

    他の一覧部分も<?php echo $the_query->post_title; ?>へ書き換えたのですが、そちらも表示されませんでした。

    あとvar_dump($the_query)とかprint_r($the_query)とか

    すいません。
    当方初心者のため理解が浅いため、この記述をどこと差し替えればよいのか分かりませんでした。

    最初のは ’ だけど それ以降は Y/m/dの頭が ‘ のようですが関係ないかな。

    ‘Y/m/d’'Y/m/d'へ書き換えたのですがかわりありませんでした。

    nobita様
    ご回答ありがとうございました。

    ループ終了後に配置してください

    <?php
    $paged = (int) get_query_var('paged');
    $args = array(
     'posts_per_page' => 3,
     'paged' => $paged,
     'orderby' => 'post_date',
     'order' => 'DESC',
     'post_type' => 'post',
     'post_status' => 'publish'
    );
    $the_query = new WP_Query($args);
    if ( $the_query->have_posts() ) :
     while ( $the_query->have_posts() ) : $the_query->the_post();
    ?>
    <div><?php the_post_thumbnail( array(240,124) ); ?></div>
    <dl>
    <dt><span><?php the_time('Y/m/d'); ?></span>
    <h3>
    <?php echo $the_query->post_title; ?>
    </h3>
    </dt>
    <dd>
    <?php the_excerpt(); ?>
    </dd>
    </dl>
    <?php endwhile; 
    wp_reset_postdata(); 
    endif;
    ?>
    

    以上の記述であっておりますでしょうか?
    こちらの内容で試したのですが表示されませんでした。

    テンプレートの中に、3つのループがあると思いますが、問題の出ているループ以外のコードをコメントアウトしても問題は継続しますか?

    はい、当該箇所以外のループを削除しても問題が継続される状況です。

    PHPを学ぶ時、最初に憶えて欲しいvar_dump
    知らない言葉は検索しましょうよ。
    自分はprint_r使いますけど。
    $the_queryの中身が表示されるので、実際のサーバーしか環境がないなら、結構たくさんの文字が表示されるのでやめておいたほうがいいかも。そこにpost_titleに中身があれば$the_query->post_titleをエコーしてやればそれが表示されるという寸法。そこが空なら表示されないのが正しい。

    確認までにお伺いさせていただきますが、プラグインを停止された上でチェックされていらっしゃいますでしょうか?
    特にSEO系のプラグインはタイトルに干渉する可能性が高いです。
    あと気になるのは「ショートコードで呼び出している」という部分ですが、そもそも固定ページのテンプレートがどうなっているのか、ショートコードがどうなっているのかがよくわからず、あまり具体的なことを言えないように思います。
    ただ、ご指定の内容なら、固定ページのテンプレートにそのまま書いたほうが良いように思えますが……

15件の返信を表示中 - 1 - 15件目 (全18件中)
  • トピック「タイトルが表示されない」には新たに返信することはできません。