フォーラムへの返信
-
投稿者投稿
-
FTPソフトで覗いてみても、header.phpが見つかりませんでした。
んーなんででしょうね、
themes/snow-monkey/header.phpに本来あるはずですが…まぁそれは本筋ではないのでおいておくとして、僕の書いたコード、どこに書くのか書いていませんでしたね。失礼しました。
一般的には子テーマをつくって、その子テーマの
functions.phpに書くことが多いと思います。そして子テーマの中の適当な場所にgoogle_for_jobs.phpもいれて、functions.phpに書いたコードの中からinclude()するという感じです。あるいは、Snow Monkey のマイアカウントページから My Snow Monkey という空のプラグインがダウンロードできるのですが、その中に
google_for_jobs.phpを配置して、my-snow-monkey.phpにコードを書いてinclude()しても良いです。get_template_part()は値を返す関数ではなく出力する関数なので、$breadcrumbs = get_template_part( 'template-parts/common/breadcrumbs' );としても$breadcrumbsに値は格納されずその時点で画面に出力されてしまいます。なので、下記のようにするとどうでしょう?ob_start(); get_template_part( 'template-parts/common/breadcrumbs' ); $breadcrumbs = ob_get_clean();♥ 0Who liked: No userグローバルナビゲーションはフレックスボックスになっているので、まずはメニュー項目の
flexプロパティを調整して文字列に応じた幅になるようにする必要があります。その後に微調整するのが簡単だと思います。/* メニュー項目の均等サイズ揃えを無効化 */ .p-global-nav .c-navbar .c-navbar__item { flex: 0 0 auto; } /* メニューリンクの左右 padding をなくす */ .p-global-nav .c-navbar .c-navbar__item a { padding-left: 0; padding-right: 0; } /* メニュー項目間の余白を 25px にする */ /* メニュー自体を中央揃え */ .p-global-nav .c-navbar { gap: 25px; justify-content: center; }♥ 0Who liked: No user‘snow_monkey_template_part_render_template-parts/common/page-header’でフックしてその中でget_template_part(‘template-parts/common/breadcrumbs’)を呼び出すも、その場で展開されてしまい、ヘッダーの一番上にパンくずが表示されてしまいました。
実際に書いたコードと、具体的にどの部分に表示したいのかかがわかるスクショなどを共有してもらうことはできますか?
♥ 0Who liked: No userデータの送付ありがとうございます。確認したところ確かに現象が確認できました。ただ、原因はちょっとよくわからなくて、Snow Monkey 以外のテーマに変えて、そのテーマの
header.phpに<a href="/view/search?search_keyword=%B7%AC%A4%CE%CD%D5">...</a>というリンクを記述しても同じ現象が確認できました。テーマは TwentyTwentyOne で、
functions.phpに下記のコードを追加してテストしてみました。add_action( 'customize_register', function( $wp_customize ) { $wp_customize->add_setting( 'test', [ 'default' => '', ] ); $wp_customize->add_control( 'test', [ 'settings' => 'test', 'label' => 'test', 'section' => 'test', 'type' => 'text', ] ); $wp_customize->add_section( 'test', [ 'title' => 'test', 'active_callback' => function() { return is_home(); } ] ); } );で、もう一点わかったのですが、そのリンク文字列があるときは下記の JS エラーがでていることに気づきました。

カスタマイザーの詳しい仕組みがわからないのでどういうエラーなのかよくわかりませんが、
URIErrorとあるのでこのリンク文字列と関連があるのかなと思いました。どういうふうに変更すれば良いのかまではわかりませんが、例えばその部分の URL をショートコード化してしまうとか、PHP で出力させるとか、直接 URL を記入しなかったらどうなのかな?と思いました。♥ 0Who liked: No userんーーなんでしょうね。
投稿ページ設定のパネルはプレビューに表示されているページが
is_home()のときに表示されるようになっています。なのでクエリが書き換えられていると表示されなくなるというのはありそうなのですが、URL(文字列)の影響を受けるというのはちょっと不思議ですね…。
こちらの環境でも試してみたいのですが、その My Snow Monkey プラグインをまるごと DM かなにかで共有してもらうことってできますか?
♥ 0Who liked: No userこちらの環境だと、ホームページの表示が「最新の投稿」のときでも、デザイン → 投稿ページ設定にコンテンツとして使用するページを割り当てる設定が表示されるのですが、この「デザイン → 投稿ページ設定」自体が表示されていない感じですかね?

♥ 0Who liked: No userあるはあるのですが、ヘッダーレイアウトを切り替えられるようにしている都合上、実態は
snow-monkey/templates/layout/headerの中に入れてあります。ただ、
header.phpのようなテンプレートファイルを直接編集するためには子テーマ等でテンプレートファイルを上書きする必要があり、それは汎用テーマを使う上では煩雑になってしまうので、フックでコードを差し込むのが一般的だと思います。headタグの中であればフックはwp_headが適切かなと思います。add_action( 'wp_head', function() { // ここで読み込む } );♥ 0Who liked: No userただいま削除しました。こちらのトピックも非表示にしておきますね。
♥ 0Who liked: No userv5.0.4 にて修正をおこないました。アップデートして確認をお願いします!!
♥ 0Who liked: No userわーすみません、こちらのミスかもです!!確認して再度リリースします。
♥ 0Who liked: No userSnow Monkey Forms v5.0.3 でこの変更を入れました。アップデートして確認してみてください!
♥ 0Who liked: No userご協力ありがとうございます! Snow Monkey Forms に変更を適用したバージョンをリリースします。アップデートして問題ないことを確認できたらトピックのクローズをお願いします!
♥ 0Who liked: No userや、すみません、下記の変更のほうが良さそうです。
private function _extract_complete_content( $post_content ) { // 中のコードは省略 }を
private function _extract_complete_content( $post_content ) { $parsed_blocks = parse_blocks( $post_content ); $complete_blocks = null; foreach ( $parsed_blocks as $parsed_block ) { if ( ! empty( $parsed_block['blockName'] ) && 'snow-monkey-forms/form--complete' === $parsed_block['blockName'] ) { $complete_blocks = render_block( $parsed_block ); break; } } return $complete_blocks; }に変更
-
投稿者投稿
