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 件
$pagedが定義されてない?
$paged = get_query_var(paged)的な
$paged定義してもまだ動かない場合、ページャー部分をプラグインwp-pagenaviに置き換えてみるとか
query_postsは非推奨です。どうしても使いたいなら、codexにページネーションを動かすcodeがありますよ。
query_postsを捨てよ、pre_get_postsを使おう【追記あり】【報告あり】 | notnil creation ...
http://notnil-creative.com/blog/archives/1688これを上手に書けたら、質問者としては合格だね。ということで、不合格。
関連するトピックス