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; ?>
その他にお心当たりのある点などご指摘頂ければ幸いです。
投稿内でコードを引用する際には入力欄上部の 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つのループがあると思いますが、問題の出ているループ以外のコードをコメントアウトしても問題は継続しますか?
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系のプラグインはタイトルに干渉する可能性が高いです。
あと気になるのは「ショートコードで呼び出している」という部分ですが、そもそも固定ページのテンプレートがどうなっているのか、ショートコードがどうなっているのかがよくわからず、あまり具体的なことを言えないように思います。
ただ、ご指定の内容なら、固定ページのテンプレートにそのまま書いたほうが良いように思えますが……