サポート » テーマ » カスタム投稿アーカイブページで投稿者の一覧を表示させたい。

  • 解決済 piiyann1983

    (@piiyann1983)


    カスタム投稿を複数ユーザーで使用し、
    その各ユーザーの一覧を表示させたいのですがうまくできません。

    author.phpでそれぞれのユーザーページにカスタム投稿を表示させる事はできたのですが、
    ページナビ(wp_pagenaviを使用)がうまく動きませんでした。
    そもそもページナビ自体が動かないものなのでしょうか?
    どなたかご教授頂けますでしょうか?

    author.php

    <?php
    	$user_data = get_userdata($author);
    	$user_id = $user_data->ID;
    	echo $user_id;
    $args = array(/* 配列に複数の引数を追加 */
    	'post_type' => 'test', /* 投稿タイプを指定 */
    	'author' => $user_id, /* ユーザー限定 */
    	'paged' => $paged, /* WP-PageNaviプラグイン用 */
    ); ?>
    <?php query_posts( $args ); ?>
    <?php if(have_posts()) : ?>
    <?php while(have_posts()) : the_post(); ?>
    <h2 class="font18"><?php the_title(); ?></h2>
    <div class="visual-entry clearfix">
    	<?php the_content(); ?>
    </div>
    <?php endwhile; else: ?>
    <?php endif; ?>
    <?php wp_pagenavi(); ?>
    <?php wp_reset_query(); ?>

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

    (@jim912)

    piiyann1983さん、こんにちは。

    うまく動かないというのが、具体的にどういう状況なのかの説明がないので推測にはなりますが、下記と同様にページングしたときに404になるということでしょうか。

    【WordPress】ページネーションエラー?

    この場合は、下記のcode 3を参考にis_categoryをis_authorに、setをpost_typeに変えて、テンプレートファイルのquery_postsは削除してください。

    3.3の新しい関数 is_main_query を使おう

    jim912さんありがとうございます。
    大変助かります。

    >>うまく動かないというのが、具体的にどういう状況なのかの説明がないので推測にはなりますが、下記と同様にページングしたときに404になるということでしょうか。

    すいません。404になるということです。

    勉強不足のためあまり理解してはおりませんが、
    jim912さんのご返信を参考に無事にページナビが動きました。
    wp_queryを使わずにauthorページのみデフォルトで表示するもの変えてしまうという事でしょうか?

    function.php

    function category_display_five_articles( $wp_query ) {
    		if ( $wp_query->is_main_query() && $wp_query->is_author() ) {
    			$post_types[] = '○○○○';
    			$wp_query->set( 'post_type', $post_types );
    		}
    	}
    	add_action( 'pre_get_posts', 'category_display_five_articles' );

    モデレーター jim912

    (@jim912)

    wp_queryを使わずにauthorページのみデフォルトで表示するもの変えてしまうという事でしょうか?

    そうです。query_postsは、新たに記事のリストを取得しなおすもので、データベースへのリクエストも増えてしまいます。
    上記の指定では、デフォルトで取得する記事の条件を予め変更することで、不要なリクエストを省くことができるようになります。

    jim912さんありがとうございます。
    勉強になりました。

    ! is_admin()がないと管理画面のカスタム投稿に影響がでました。
    下記を参考に修正しました。
    http://wpxtreme.jp/understanding-wordpress-loops-and-queries
    修正版を記載しておきます。

    function.php

    function category_display_five_articles( $wp_query ) {
    		if ( ! is_admin() && $wp_query->is_main_query() && $wp_query->is_author() ) {
    			$post_types[] = '○○';
    			$wp_query->set( 'post_type', $post_types );
    		}
    	}
    	add_action( 'pre_get_posts', 'category_display_five_articles' );

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「カスタム投稿アーカイブページで投稿者の一覧を表示させたい。」には新たに返信することはできません。