-
ID:oT.IZn さんの質問

WordPressで架空の企業サイトを作っています。

トップページは固定ページで、グローバルナビからブログのトップページに飛ばします。
ブログのトップページは固定ページで、blog.phpというテンプレートを作って使用しています。
最新の記事を一つだけ表示し、ページャーを付けたいです。が、ページャーを付けてみたところクリックしても記事の内容が変わらず、どこがおかしいのか分からない状態です。
コードを上から順に一つ一つ見ていこうと思ったのですが、調べながら見てもいまいちよくわかりませんでした。。

初歩的な質問で申し訳ありませんが、教えていただけると嬉しいです。

blog.phpの投稿表示部分は下記のような内容です。

<?php

/* Template Name: Blog */

?>

<?php get_header(); ?>

<!-- 投稿を一つ表示 -->
<?php
$args = array( /* 何を取得するのかを配列に入れる */
’post_type’ => ’post’, /* 投稿タイプ */
’paged’ => $paged, /* 全投稿中の何ページ目か */
);

query_posts( $args ); /* 投稿を呼び出す */
query_posts(’&posts_per_page=1’); /* 1ページにつき最新の投稿を1投稿表示 */

if (have_posts()) :
while (have_posts()) : the_post(); /* ループ開始(投稿データを順にロードする) */
?>

<!-- wordpress の基本的なループ -->
<article>
<h2><?php the_title(); ?></h2>
<time datetime="2013-09-24"><?php the_time("Y年m月j日") ?></time>
<?php the_post_thumbnail(); /* アイキャッチ */ ?>
<p><?php the_content(); ?></p>
</article>

<?php
endwhile;
?>

<?php else : ?>
<h3>記事がありません</h3>
<p>表示する記事はありませんでした</p>
<?php endif; ?>
<!-- wordpress の基本的なループここまで -->
<!-- 投稿を一つ表示ここまで -->

<!-- ページャー -->
<div class="pager">
<?php global $wp_rewrite;
$paginate_base = get_pagenum_link(1);
if(strpos($paginate_base, ’?’) || ! $wp_rewrite->using_permalinks()){
$paginate_format = ’’;
$paginate_base = add_query_arg(’paged’,’%#%’);
}
else{
$paginate_format = (substr($paginate_base,-1,1) == ’/’ ? ’’ : ’/’) .
user_trailingslashit(’page/%#%/’,’paged’);;
$paginate_base .= ’%_%’;
}
echo paginate_links(array(
’base’ => $paginate_base,
’format’ => $paginate_format,
’total’ => $wp_query->max_num_pages,
’mid_size’ => 4,
’current’ => ($paged ? $paged : 1),
’prev_text’ => ’«’,
’next_text’ => ’»’,
)); ?>
</div>
<!-- ページャーここまで -->

全体の作り方やページャーについては主に下記のページを参考にしています。
http://webdesignrecipes.com/wordpress-corporate-website/
http://kowappa.com/wordpress/pager

よろしくお願いします。

みんなの回答 3 件

ID:dZqZ1l さんの回答

$pagedが定義されてない?
$paged = get_query_var(paged)的な
$paged定義してもまだ動かない場合、ページャー部分をプラグインwp-pagenaviに置き換えてみるとか

ID:oT.IZn

ご回答ありがとうございました。
勘違いしておりまして、実装したいのはページャーではなく「次のページへ」ナビでした。大変失礼いたしました。

ID:fm31Nk さんの回答

query_postsは非推奨です。どうしても使いたいなら、codexにページネーションを動かすcodeがありますよ。

query_postsを捨てよ、pre_get_postsを使おう【追記あり】【報告あり】 | notnil creation ...

http://notnil-creative.com/blog/archives/1688
ID:o19eGj

ありがとうございます!
参考にさせていただきます。

ID:qyXEmX さんの回答

  • ゴール
  • 現状
  • 何をしたか

これを上手に書けたら、質問者としては合格だね。ということで、不合格。

ID:o19eGj

ありがとうございます。
次回より気をつけます。

最終更新日:2013-10-10 (4,139 views)

関連するトピックス

ページ上部に戻る