こんにちは。
カスタム投稿タイプに限りませんが、
「固定ページ内に特定(カテゴリやカスタム投稿タイプなど)の記事一覧を表示したら
ページ送りがうまくいかない」
というのはよくある質問内容です。
フォーラム内「固定ページでページングを実装したい」
kzさんの解答がずばりかと。
http://ja.forums.wordpress.org/topic/5884?replies=4
あと、カスタム投稿タイプのアーカイブを固定ページで表示することに
こだわる理由がないのであれば
以下のスレッドのようなやり方もありますので、参考までに。
フォーラム内「Custom Post Type UIの一覧記事取得」
http://ja.forums.wordpress.org/topic/9191?replies=3
gatespaceさん、ありがとうございます。
kzの通り書いてみましたが出来ませんでした・・・なぜなんでしょうか・・・
<?php
$paged = get_query_var(‘paged’) ? get_query_var(‘paged’) : 1;
?>
<?php query_posts(‘posts_per_page=3&paged=’.$paged.’&post_type=”news”‘); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<div class=”news_box”>
<h3 class=”clr”><?php the_title(); ?><span><?php the_time(“Y/m/j”) ?></span></h3>
<div class=”news_contents”>
<?php the_content(); ?>
</div><!– / .news_contents–>
</div><!– / .news_box –>
<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>
<?php posts_nav_link(‘|’, ‘<< BACK’, ‘NEXT >>’); ?><?php next_posts_link(‘Next Page >’); ?>
<?php wp_reset_query(); ?>
横槍失礼します。私もつい先日まで同じ事で悩まれていました。フォーラムで調べて上記のリンクにもある方法を試したのですが上手く行かず。
その後も色々と調べたのですが、Custom Post Type UIを利用しているのならカスタム投稿タイプのカスタムリライトスラッグと固定ページのスラッグ名を同じにしているのが原因ではないでしょうか?
私はこちらの固定ページにカスタム投稿タイプのアーカイブを表示するという記事で解決しました。ご参考までに。
※コードを書くときはcodeボタンを使って囲んでくださいね。
fons_00さん、フォローありがとうございます。
確かに固定ページのスラッグとカスタム投稿タイプ名が同じですと、意図したとおりに表示されないことがあります。
あと
出来ませんでした・・・なぜなんでしょうか・・・
とコードのみではなく、具体的なエラー文・事象もあわせて書き込んでください。
エラーの表示(デバッグモードを有効化する)の方法はwp-config.php の
define('WP_DEBUG', false);
を define('WP_DEBUG', true);
にしてください
ざっとコードに目を通しましたがposts_nav_link(); の位置がおかしいのと
アーカイブであればと next_posts_link(‘); は必要ありません。
kzさんとは異なりますが、以下のコードでも固定ページで
カスタム投稿タイプのアーカイブを表示できませんか?
<?php /* カスタム投稿タイプの投稿を取得 (post_type="news") */
// query_postsの中身はお好みで
query_posts( array(
'post_type' => 'news',
'posts_per_page' => '3',
'paged' => get_query_var( 'paged' )
) );
if ( have_posts() ) : // 投稿がある場合
// ループスタート
while ( have_posts() ) : the_post();
$more = false; // <!-- more-->を使うときは入れておく
// the_title(); や the_content(); など
endwhile; // ループ終わり
// ループが終わったらナビゲーション要素
posts_nav_link('|', '<< BACK', 'NEXT >>');
else : // 投稿がない場合
echo "投稿はありません";
endif;
wp_reset_query(); // メインクエリを改変したら必ずリセットする
?>