サポート » 使い方全般 » カスタム投稿タイプでのページング

  • 教えてください。
    他にも似たトッピックがあり自分なりに調べまくったのですが、うまく動作せず・・・

    「次の10件へ」をクリックすると、リンク先(http://hogehogeXXX.com/news/page/2)が見つからないようで、トップページに飛ばされてしまいます・・・。
    ちなみにリンク元は固定ページ(テンプレート:news.php)内でカスタム投稿タイプをループさせています。
    どなたかご教示ください!!

    <?php
    $args = array(
    ‘post_type’ => ‘news’,
    ‘paged’ => $paged,
    );
    ?>
    <?php query_posts( $args ); ?>
    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
    <?php the_title(); ?><?php the_time(“Y/m/j”) ?>
        <?php the_content(); ?>
    <?php endwhile; ?>
    <?php else : ?>
    <?php endif; ?>
        <?php next_posts_link( ‘次の10件へ’ ); ?>
        <?php wp_reset_query(); ?>

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター gatespace

    (@gatespace)

    こんにちは。
    カスタム投稿タイプに限りませんが、
    「固定ページ内に特定(カテゴリやカスタム投稿タイプなど)の記事一覧を表示したら
    ページ送りがうまくいかない」
    というのはよくある質問内容です。

    フォーラム内「固定ページでページングを実装したい」
    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を利用しているのならカスタム投稿タイプのカスタムリライトスラッグと固定ページのスラッグ名を同じにしているのが原因ではないでしょうか?

    私はこちらの固定ページにカスタム投稿タイプのアーカイブを表示するという記事で解決しました。ご参考までに。

    モデレーター gatespace

    (@gatespace)

    ※コードを書くときは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(); // メインクエリを改変したら必ずリセットする
    ?>
4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「カスタム投稿タイプでのページング」には新たに返信することはできません。