サポート » 使い方全般 » authorの記事一覧でpostとカスタム投稿タイプの両方を表示するには?

  • 解決済 mizumi

    (@mizumi)


    テーマはSandboxを使用しています。
    投稿と固定ページに加えて、checkという名前のカスタム投稿タイプを使っているので、
    記事の末尾にある This entry is written by username というところを
    クリックしたときに、username の post だけでなく check も表示したいと思っているのですが、
    実現できません。

    http://ja.forums.wordpress.org/topic/6080を参考にして、function.php の末尾に

    add_filter( 'getarchives_where', 'my_getarchives_where', 10, 2 );
    function my_getarchives_where( $where, $r ) {
      global $my_archives_post_type;
      if ( isset($r['post_type']) ) {
        $my_archives_post_type = $r['post_type'];
        $where = str_replace( '\'post\'', '\'' . $r['post_type'] . '\'', $where );
      } else {
        $my_archives_post_type = '';
        $where = str_replace( 'post_type = \'post\'', 'post_type in  (\'post\', \'check\')', $where );
      }
      return $where;
    }
    add_filter( 'get_archives_link', 'my_get_archives_link' );
    function my_get_archives_link( $link_html ) {
      global $my_archives_post_type;
      if ( '' != $my_archives_post_type )
        $add_link .= '?post_type=' . $my_archives_post_type;
    	$link_html = preg_replace("/href=\'(.+)\'\s/","href='$1".$add_link."'",$link_html);
    
      return $link_html;

    というコードを追加してみましたが、まだこれでもだめなようです。
    どうするのがよいでしょうか?

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

    (@jim912)

    mizumiさん、こんにちは。

    上記のコードは、カスタム投稿タイプの日付別表示のリンクを生成するためのもので、作者別の表示にカスタム投稿タイプを織り交ぜるものとは違います。

    下記にて、動作すると思いますのでおためし下さい。
    ある程度汎用的に書いていますが、postとcheck固定であれば

    $post_types = array( 'post', 'check' );

    でも構いません。
    それと、is_main_queryを使っているので、3.3専用となります。

    function multi_post_type_author_archive( $wp_query ) {
    	// メインクエリーで、作成者アーカイブで、投稿タイプの指定が無い場合
    	if ( $wp_query->is_main_query() && $wp_query->is_author() && ! $wp_query->get( 'post_type' ) ) {
    		// '_builtin' => false 組み込みのタイプ以外、'publicly_queryable' => true フロントエンドで post_type クエリが実行可能なカスタム投稿タイプを取得
    		$post_types = get_post_types( array( '_builtin' => false, 'publicly_queryable' => true ) );
    		// 投稿を追加
    		$post_types[] = 'post';
    		// 投稿タイプの指定を追加
    		$wp_query->set( 'post_type', $post_types );
    	}
    }
    add_action( 'pre_get_posts', 'multi_post_type_author_archive' );

    トピック投稿者 mizumi

    (@mizumi)

    jim912さん、どうもありがとうございます!
    教えていただいたコードを functions.php の末尾に追加したところ、
    wordpressのURL/author/username/ でpost、checkの両方とも
    表示されるようになりました。
    本トピックを解決済みにしておきます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「authorの記事一覧でpostとカスタム投稿タイプの両方を表示するには?」には新たに返信することはできません。