カスタム投稿タイプの記事テンプレート編集

0
いいねをした人: 居ません
11件の投稿を表示中 - 1 - 11件目 (全11件中)
  • 投稿者
    投稿
  • #84910
    アバター画像星乃 みなみ
    閲覧者
    36

    【お使いの Snow Monkey のバージョン】15.3.1
    【お使いの Snow Monkey Blocks のバージョン】12.0.1
    【お使いの Snow Monkey Editor のバージョン】6.0.0
    【お使いのブラウザ】Chrome
    【当該サイトのURL】http://x04.kglb.net/special/%e7%89%b9%e9%9b%86%ef%bc%94/

    ### 実現したいこと

    毎回すみません…

    特集4〜関連記事までのテンプレートの構成を編集したいです
    まだ構成はきまってないけど

    この記事を書いた人
    関連記事

    は無くてもいいと思われるます
    おそらくCSSで非表示にすることは自分でもできそうだけど
    できればテンプレートを編集したいです

    ### 発生している問題

    記事投稿画面には存在しないので、テンプレートにあるっぽい

    ### 試したこと

    おそらくこれもフック等をつかってひとつひとつ変更削除する必要があるのかとおもいますが、
    子テーマのように1枚のテンプレートを編集することも出来るのか等について教えて下さい

    知りたいのはどれをいじれば実現できるかです 
    また、エンジニアでないわたしで出来る範囲かです(分かりづらい言い方でスミマセン)

    多分、投稿のテーマを読み込んでいるので、それを直接いじると
    投稿のテーマを読み込んでるモノ全部に影響がある可能性あり?
    投稿タイプ毎に表現を変えたい場合は、どうすればいいのか
    フィルターで内容の編集はできたとしても、投稿タイプ用のテンプレートを
    新たにつくるとかどうすればいいのだろう

    ### その後

    カスタマイズ>デザイン>特集ページ設定>ビューテンプレート>固定ページのビューテンプレート

    にしたら本文以外全部なくなることはわかったのだけど、
    これは必要、これが不要ができないです

    いったんもどしたしました

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

    こんにちは。
    テンプレートの内容を書き換える場合は、フィルターフックのsnow_monkey_template_part_render_{slug}を使用します。
    テンプレートの内容を書き換える

    ローカル環境等でデバッグモードをtrueにしておくと、ソース上にどのテンプレートを使用しているのかが表示されます。

    ・この記事を書いた人
    ・関連記事
    を単純に消すだけなら、以下のコードを My Snow Monkey に追加すればOKです。

    add_filter(
    	'snow_monkey_template_part_render_template-parts/common/profile-box',
    	function ( $html ) {
    		$post_type = get_post_type(); 
    		if ( 'special' == $post_type ) {
    			return;
    		}
    		return $html;
    	}
    );
    
    add_filter(
    	'snow_monkey_template_part_render_template-parts/content/related-posts',
    	function ( $html ) {
    		$post_type = get_post_type(); 
    		if ( 'special' == $post_type ) {
    			return;
    		}
    		return $html;
    	}
    );
    1
    いいねをした人:
    #84943
    キタジマ タカシ
    参加者
    2249

    snow-monkey/templates/view/content.php をみてみてください。中に下記のコードがあると思います。

    $args = wp_parse_args(
    	// phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
    	$args,
    	// phpcs:enable
    	[
    		'_display_adsense'                     => false,
    		'_display_article_bottom_widget_area'  => false,
    		'_display_article_top_widget_area'     => false,
    		'_display_bottom_share_buttons'        => false,
    		'_display_contents_bottom_widget_area' => false,
    		'_display_comments'                    => true,
    		'_display_entry_footer'                => false,
    		'_display_entry_header'                => $display_entry_header,
    		'_display_eyecatch'                    => $display_eyecatch,
    		'_display_profile_box'                 => false,
    		'_display_tags'                        => false,
    		'_display_top_share_buttons'           => false,
    	]
    );

    「この記事を書いた人」だと $args['_display_profile_box'] で出すかどうかを管理しています。デフォルトは false なのでカスタム投稿タイプでは表示されません(投稿の場合は snow-monkey/templates/view/content-post.php が使用されますが、そちらでは true になっています)。

    そういう感じでこのパラメーターをよしなに書き換えることで、どのパーツを表示して表示させないかをカスタマイズできます。このパラメーターは snow_monkey_get_template_part_args_templates/view/content フックでカスタマイズできます。

    add_action(
    	'snow_monkey_get_template_part_args_templates/view/content',
    	function( $args ) {
    		// カスタム投稿タイプ news のとき(カスタマイザーでビューテンプレートを変更している場合は効きません)
    		if ( 'news' === $args['name'] ) {
    			// 「この記事を書いた人」を表示
    			$args['vars']['_display_profile_box'] = true;
    		}
    		return $args;
    	}
    );

    子テーマのように1枚のテンプレートを編集することも出来るのか等について教えて下さい

    できます。普通に子テーマをつくって、snow-monkey/templates/view/content-news.phpsnow-monkey/template-parts/content/entry/entry-news.php なんかをつくって HTML や PHP を記述すれば良いです。Snow Monkey も単なる WordPress テーマなので、他のテーマと同じく子テーマをつくってテンプレートの上書きは可能です。

    多分、投稿のテーマを読み込んでいるので、それを直接いじると
    投稿のテーマを読み込んでるモノ全部に影響がある可能性あり?

    もちろん影響しますが、それよりもテーマ(に限らずプラグインもコアも)のファイルを直接いじってはダメです。多分これも前コメントしたと思いますが、アップデートは最新のファイルをネット上からダウンロードしてきてサーバー内のファイルと置き換える行為なので、直接いじるとアップデートしたらその変更は消えていまします。

    1
    いいねをした人:
    #84946
    アバター画像星乃 みなみ
    閲覧者
    36

    コメントみなさんありがとうございます
    環境設定ぽくつくりこまれてること
    それを個別に変更すればよいことがわかりました

    夕方にいったん、現状をもとにどういう方針で変更するか打ち合わせしまので
    それまでさわらず、今晩から週明けにかけてカスタマイズしてみようとおもいます

    いったん、ありがとうございます
    作業の過程をポストしたいので、しばらく閉じずにおいときます
    よろしくお願いします!

    #おしえもらって感謝のプラグイン本かったら分厚さにびっくり、
    #せっかくなので、とりあえずフックの部分だけでも読みます!
    #なんかやるべきコトがいっぱいで大変です

    0
    いいねをした人: 居ません
    #84947
    アバター画像星乃 みなみ
    閲覧者
    36

    できます。普通に子テーマをつくって、snow-monkey/templates/view/content-news.php や snow-monkey/template-parts/content/entry/entry-news.php なんかをつくって HTML や PHP を記述すれば良いです。Snow Monkey も単なる WordPress テーマなので、他のテーマと同じく子テーマをつくってテンプレートの上書きは可能です。

    でもこれは非推奨なのですよね。My Snow Monkeyでのフックが推奨なのですよね
    まえ、My Snow Monkey内のコードで数行のHTMLを見ましたが、フックかけた場所をごそっとHTMLに入れ替えることも
    可能なのですよね(変数はPHPになってるともっと理想、日付とか)

    0
    いいねをした人: 居ません
    #84953
    アバター画像星乃 みなみ
    閲覧者
    36

    時間があいたので、投稿日(メタ)と前後のリンクだけ表示しようとしています

    投稿日、更新日、投稿者は表示されました(これらの個別編集をしたいところですがそれはのちほど)

    ページの前後が表示されません。 なにかたりない? のでしょうか

    add_action(
    	'snow_monkey_get_template_part_args_templates/view/content',
    	function( $args ) {
    		// カスタム投稿タイプ information のとき(カスタマイザーでビューテンプレートを変更している場合は効きません)
    		if ( 'information' === $args['name'] ) {
    			// 投稿日を表示
    			$args['vars']['_display_entry_meta'] = true;
    			// 前後の記事を表示
    			$args['vars']['_display_prev_next_nav'] = true;
    		}
    		return $args;
    	}
    );

    もしや1つづつかとおもったのですが、だめでした。

    これって、$args[‘vars’][‘hoge’] となってる多次元配列を
    検索してみつけたら上書きするという流れで認識間違えないでしょうか

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

    ページの前後が表示されません。 なにかたりない? のでしょうか

    ‘_display_entry_footer’が true になってないからじゃないですか?

    1
    いいねをした人:
    #84965
    アバター画像星乃 みなみ
    閲覧者
    36

    ‘_display_entry_footer’が true になってないからじゃないですか?

    その通りでした! ありがとうございます。

    ‘_display_entry_meta’ の投稿者だけを消すとはCSSですかね.
    17時半からのMTGで希望を確認します!

    0
    いいねをした人: 居ません
    #84969
    アバター画像星乃 みなみ
    閲覧者
    36

    結果こうなりました。MTGで詰める予定
    本当にありがとうございます。なんとなく感覚がわかって来た
    あとはこの連想配列というか、多次元配列というかこの宣言の仕方に慣れるだけですね

    add_action(
    	'snow_monkey_get_template_part_args_templates/view/content',
    	function( $args ) {
    		// カスタム投稿タイプ information のとき(カスタマイザーでビューテンプレートを変更している場合は効きません)
    		if ( 'information' === $args['name'] ) {
    			// 投稿日を表示
    			$args['vars']['_display_entry_meta'] = true;
    			// 前後の記事を表示
    			$args['vars']['_display_entry_footer'] = true;
    			$args['vars']['_display_prev_next_nav'] = true;
    			// 関連記事を非表示
    			$args['vars']['_display_related_posts'] = false;
    		}
    		return $args;
    	}
    );
    
    add_action(
    	'snow_monkey_get_template_part_args_templates/view/content',
    	function( $args ) {
    		// カスタム投稿タイプ special のとき(カスタマイザーでビューテンプレートを変更している場合は効きません)
    		if ( 'special' === $args['name'] ) {
    			// 投稿日を表示
    			$args['vars']['_display_entry_meta'] = true;
    			// 前後の記事を表示
    			$args['vars']['_display_entry_footer'] = true;
    			$args['vars']['_display_prev_next_nav'] = true;
    			// 関連記事を非表示
    			$args['vars']['_display_related_posts'] = false;
    		}
    		return $args;
    	}
    );
    2
    いいねをした人:
    #84976
    アバター画像星乃 みなみ
    閲覧者
    36

    結果的に全部いったん非表示になったので、関連記事の非表示以外はコメントアウトしました

    ありがとうございます。とても勉強になりました。
    いったん閉じますね

    0
    いいねをした人: 居ません
    #85012
    キタジマ タカシ
    参加者
    2249

    でもこれは非推奨なのですよね。My Snow Monkeyでのフックが推奨なのですよね

    非推奨というのは、Snow Monkey テーマが子テーマに向いていないというわけではなくて、僕が WordPress の子テーマというものを積極的には使わないほうが良いと思っているということです。

    むしろ Snow Monkey は子テーマを使いやすいように工夫している(テンプレートを小分けにしたり、デバッグコメントとしてテンプレートの情報を出力するようにしたり)ので、フックでのカスタマイズが苦手な方は子テーマを使うのもありだと思います(個人的には、コードによるカスタマイズが難しいという方は無理にカスタマイズせずに使うほうが安全だとは思いますが)。

    まえ、My Snow Monkey内のコードで数行のHTMLを見ましたが、フックかけた場所をごそっとHTMLに入れ替えることも
    可能なのですよね

    まーちゅうさんが書かれていた snow_monkey_template_part_render_{slug} とか、snow_monkey_get_template_part_{slug} でできます。

    0
    いいねをした人: 居ません
11件の投稿を表示中 - 1 - 11件目 (全11件中)
  • トピック「カスタム投稿タイプの記事テンプレート編集」には新しい返信をつけることはできません。

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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