あ、このフックちょっとわかりにくいですよね。。
えと、 snow_monkey_template_part_root
は Helper::get_template_part()
が呼び出すテンプレートパーツの基準ディレクトリを変更します。なので、例えば
Helper::get_template_part( 'template-parts/common/copyright' );
としてテンプレートパーツを呼び出した場合、 /PATH/TO/wp-content/themes/snow-monkey/template-parts/common/copyright.php
が呼び出されるわけですが、この /PATH/TO/wp-content/themes/snow-monkey/
の部分を変更できる、ということになります。
したがって、先の例だと、my-snow-monkey 内の配置はこうすることになります。
my-snow-monkey
├ my-snow-monkey.php
└ templates
└ template-parts
└ loop
└ entry-summary-post.php
配置がずれたので再投稿します。
ディレクトリ構造
my-snow-monkey
├my-snow-monkey.php
└templates
└loop
└entry-summary-post.php
my-snow-monkey.php内のコード
add_filter(
'snow_monkey_template_part_root',
function( $root, $slug, $name, $vars ) {
return __DIR__ . '/templates';
},10,4
);
「My Snow Monkey」以外に有効化されたプラグインは「Snow Monkey Blocks」「WP Multibyte Patch」だけです。
ご説明ありがとうございます。
以下のようにプラグインディレクトリ内を配置しましたが、配置したテンプレートが反映されませんでした。何か配置の仕方を勘違いしているのだと思いますが、正解をお示しいただけますか?
my-snow-monkey
├my-snow-monkey.php
└templates
└loop
└entry-summary-post.php
my-snow-monkey.phpでの書き方は、冒頭のプラグイン名などのコメント以外に以下を記しただけです。
add_filter(
‘snow_monkey_template_part_root’,
function( $root, $slug, $name, $vars ) {
return DIR . ‘/templates’;
},10,4);
これまだ記事も説明も書いてなかったですね。。。
例えば my-snow-monkey/my-snow-monkey.php
に記述 & my-snow-monkey/my-snow-monkey/templates
の中にテンプレートを配置するとすると、次のようになります。
add_filter(
'snow_monkey_template_part_root',
function( $root, $slug, $name, $vars ) {
return __DIR__ . '/templates';
},
10,
4
);
上の例だと Helper::get_template_part()
で呼び出されるすべてのテンプレートの基本ディレクトリが my-snow-monkey/templates
になりますが、例えば $slug
を使って分岐させれば特定のテンプレートのときだけ基本ディレクトリを変える、みたいなこともできます。
【お使いの Snow Monkey のバージョン】v5.1.1(ローカルのテスト環境)
【お使いのブラウザ】safari、chrome
template-parts/loop/entry-summary-post.phpやentry-summary.phpの「summary__meta」だけ差し替えたいのですが、フィルターなどで可能でしょうか。
ポストタイプごとに「summary__meta」だけ様式や出力する項目を変更したいのですが、今後のSnow Monkeyのアップデートを生かすことを考えると、entry-summary-〇〇.phpを量産せず「summary__meta」以外は元のentry-summary.phpをそのまま使いたいです。
以前フォーラムに書かれた以下のページで「snow_monkey_entry_meta_items」というフックがあるように書かれていますが、Snow Monkey内で見つけられませんでした。
トピックを新しく立てる方は次の項目も記述してください(要望トピックの場合は不要です)。
【お使いの Snow Monkey のバージョン】v5.1.1(ローカルテスト環境)
【お使いのブラウザ】safari、chrome
【当該サイトのURL】(公開できる場合は書いていただいたほうがスムーズです)
新しく追加された「snow_monkey_template_part_root」の書き方はどうなりますか?
my snow monkeyプラグインに以下のように書けば良いかと思いますが、functionの中の〇〇部分がわかりません。
add_filter(
‘snow_monkey_template_part_root’,
function( $root, $slug, $name, $vars ) {
〇〇
},10,4)
お手数おかけします。
該当URL(テストサイト)です。現在、nth-child()の4,5,6,7で、ご教示いただいたCSSを当てています。
https://test3.stopkodokushi.info/
ウィジェット設置状況は画像の通りで、下部のウィジェット間の間隔を詰めるのが希望です。
(スライダーはスマホ、PCで切り替えのため2つあります)
上部と下部の間に、記事をはさんでいます。


ダイレクトメッセージのところにこんな感じで僕の名前がでますでしょうか?そこから送ってもらえば僕だけに情報が届きます!
ありがとうござます。
なるほど・・・
KUSANAGIのプラグインに関してはいじれなさそうなので、
実際に見ていただけると幸いです
Slackにはログイン出来たのでどのようにお伝えすればいいでしょうか?
すみません、、コードを修正してみようとしたのですが、ちょっと僕が想定していたものじゃなかったようで、手がかりが無くなってしまいました…。
僕は Clasic Editor 以外のプラグインを入れていない状態で試しているので、KUSANAGI Configure、WP KUSANAGI のなにかと干渉しているのか、それとも Snow Monkey の設定の組み合わせなどによるものなのか、ちょっとわからない状態です。
KUSANAGI のプラグインの各機能をオンオフしてみてもらうことは可能でしょうか?キャッシュ機能があるようなので、それが怪しいかも…と思ったり。もしくは、管理画面にログインさせてもらうことは可能でしょうか?直接見てみたほうが何かわかるかもしれないなと…。もし可能であれば、Slack や Messanger なりでアカウント情報を教えていただければと思います。ご検討ください!
ご返信ありがとうございます。
コンソールを確認したところ以下の様なエラーが表示されていました。
Uncaught SyntaxError: Unexpected token true
Uncaught ReferenceError: tinyMCEPreInit is not defined
at post-new.php:3130
Mixed Content: The page at ‘<URL>’ was loaded over HTTPS, but requested an insecure stylesheet ‘<URL>’. This request has been blocked; the content must be served over HTTPS.
また、プラグインとの干渉も考慮して以下の停止できない物とClassic Editor 意外止めましたが同じようにエラーが出ておりました。
必須
・KUSANAGI Configure
・WP KUSANAGI
ドロップイン
・advanced-cache.php
これでも切り替えができない状態でした。
となると止められない物との干渉なんでしょうか?
切り替えしようとしたときに、ブラウザのコンソールになにか JavaScript のエラーがでていませんでしょうか?こちらの環境だとブロックエディター/クラシックエディターどちらもビジュアル⇔テキストの切り替えは問題なくできたので、お使いのプラグインとの干渉が怪しいかなと…。
(子テーマの可能性もありますが「目次の追加」「コンポーネントの追加」くらいであればその可能性は低そうです。)
ウィジェットでもnth-child()を使うのですね。勉強になりました。
ただ目的のウィジェットには、うまくいきません。
ウィジェット設置状況は、トップページの上部ウィジェットに4つ(うちスライダー2つ→PC・スマホ切り替えのため)、下部ウィジェットに3つ入っており、下部ウィジェットの隙間を調整したいです。
ご教示いたただいたコードのマージンを極端に300pxくらいで試してみると、上部は効くのですが、下部のものは効かないようです。
上部、下部で記載方法等が違うのでしょうか。
また、ゼロmarginでも足りず、余白をさらに詰めたい場合は、マイナスmarginも可能でしょうか。
カルーセルを設置しているウィジェットエリアはホームページウィジェットエリアでしょうか?
ホームページウィジェットエリアの場合、ウィジェット間の上下マージンは .l-front-page-widget-area__item
に設定されています。 .l-front-page-widget-area__item
が何のウィジェットを持っているかは HTML 上に情報がないので、「○番目の .l-front-page-widget-area__item
のマージンを消す」という指定をする必要があります。
マージンは .l-front-page-widget-area__item
の上側に設定されています。例えば3番目のウィジェットの上マージンを消したければ次のような CSS になります。
.l-front-page-widget-area__item:nth-child(3) {
margin-top: 0 !important;
}
ありがとうございます!
ドキュメントを見つけられずお手間をお掛けしてしまいました。申し訳ありません。
無事、子テーマのfunctions.phpに書いて対応できました。ありがとうございました!