カスタム投稿タイプの関連記事で、投稿タイプの判別をしたい。

0
いいねをした人: 居ません
4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • 投稿者
    投稿
  • #80060
    まーちゅう
    参加者
    367

    【お使いの Snow Monkey のバージョン】14.3.5
    【お使いの Snow Monkey Blocks のバージョン】11.4.1
    【お使いの Snow Monkey Editor のバージョン】5.0.6
    【お使いのブラウザ】chrome
    【当該サイトのURL】 https://demo.waiwai-do.com/news/do_action-japan-2020/

    ### 実現したいこと
    カスタム投稿タイプの関連記事で、投稿タイプの判別をしたい。

    投稿一覧のカテゴリーのラベルの表示位置を変えるために以下のコードを追加しています。

    
    /**
     * 各投稿一覧で taxonomy のラベルをタイトルの上に表示
     *
     * @param string $html はコンテンツの中身.
     * @param string $name は post type.
     */
    add_filter(
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary/title/title',
    	function ( $html, $name ) {
    		$taxonomy  = 'category';
    		$post_type = $name;
    		switch ( $name ) {
    			case 'post':
    				$taxonomy = 'category';
    				break;
    			case 'news':
    				$taxonomy = 'news_category';
    				break;
    			case 'shop-info':
    				$taxonomy = 'shop_genre';
    				break;
    			case 'interview':
    				$taxonomy = '';
    				break;
    		}
    		if ( $post_type === $name ) {
    			$tags       = '';
    			$postid     = get_the_ID();
    			$post_terms = get_the_terms( $postid, $taxonomy );
    			if ( ! empty( $post_terms ) ) {
    				$tags = '<ul class="' .$taxonomy. '-tags taxonomy-tags">';
    				foreach ( $post_terms as $post_term ) {
    					$term_name = $post_term->name;
    					$slug      = $post_term->slug;
    					$term_id   = $post_term->term_id;
    					$tags .= '<li class="' .$taxonomy. '-' .$term_id.' ' .$slug.'">' . $term_name . '</li>';
    				}
    				$tags .= '</ul>';
    			}
    			$html       = str_replace( '<h3', $tags . '<h3', $html );
    		}
    		return $html;
    	},
    	10,
    	2
    );

    投稿一覧では、name が投稿タイプになっているのですが、カスタム投稿タイプのシングルページで、関連記事の部分では、投稿タイプにかかわらず、name が post になっているため、投稿タイプの判別ができません。
    関連記事でもラベルの位置を変更したいのですが、何かいい方法はありますか?

    投稿一覧
    <!-- Start : [slug] => template-parts/loop/entry-summary/title/title [name] => news [template-slug] => template-parts/loop/entry-summary/title/title -->

    関連記事
    <!-- Start : [slug] => template-parts/loop/entry-summary/title/title [name] => post [template-slug] => template-parts/loop/entry-summary/title/title -->

    0
    いいねをした人: 居ません
    #80069
    アバター画像キタジマ タカシ
    参加者
    2421

    カスタマイザーでビューテンプレートが「投稿のビューテンプレート」になっていると post になっちゃうんですよね。

    $name ではなくて get_post_type() だとどうですかね?

    1
    いいねをした人:
    #80084
    まーちゅう
    参加者
    367

    なるほど!
    無理に $name を使わなくても get_post_type() で行けそうな気がします。
    ちょっとコード書きなおしてみます。

    0
    いいねをした人: 居ません
    #80090
    まーちゅう
    参加者
    367

    ありがとうございます。
    get_post_type() に変更で、うまくいきました。

    /**
     * 各投稿一覧で taxonomy のラベルをタイトルの上に表示
     *
     * @param string $html はコンテンツの中身.
     */
    add_filter(
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary/title/title',
    	function ( $html ) {
    		$taxonomy  = 'category';
    		$post_type = get_post_type();
    		switch ( $post_type ) {
    			case 'post':
    				$taxonomy = 'category';
    				break;
    			case 'news':
    				$taxonomy = 'news_category';
    				break;
    			case 'shop-info':
    				$taxonomy = 'shop_genre';
    				break;
    			case 'interview':
    				$taxonomy = '';
    				break;
    		}
    		$tags       = '';
    		$postid     = get_the_ID();
    		$post_terms = get_the_terms( $postid, $taxonomy );
    		if ( ! empty( $post_terms ) ) {
    			$tags = '<ul class="' .$taxonomy. '-tags taxonomy-tags">';
    			foreach ( $post_terms as $post_term ) {
    				$term_name = $post_term->name;
    				$slug      = $post_term->slug;
    				$term_id   = $post_term->term_id;
    				$tags .= '<li class="' .$taxonomy. '-' .$term_id.' ' .$slug.'">' . $term_name . '</li>';
    			}
    			$tags .= '</ul>';
    		}
    		$html       = str_replace( '<h3', $tags . '<h3', $html );
    		return $html;
    	}
    );
    4
    いいねをした人:
4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • トピック「カスタム投稿タイプの関連記事で、投稿タイプの判別をしたい。」には新しい返信をつけることはできません。

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。