フォーラムへの返信
-
投稿者投稿
-
書いてみました!WordPress の HTML API で書き換えられるのは属性だけでタグは書き換えられなかったので、PHP の DOMDocument と DOMXPath を使ってみました。
add_filter( 'render_block_snow-monkey-blocks/accordion-item', function( $block_content ) { $doc = new \DOMDocument; $doc->loadXML( $block_content ); $xpath = new \DOMXPath( $doc ); $divsToReplace = $xpath->query( "//div[contains(@class, 'smb-accordion__item__title')]" ); foreach ( $divsToReplace as $div ) { $h2 = $doc->createElement( 'h2', $div->nodeValue ); foreach ( $div->attributes as $attr ) { $h2->setAttribute( $attr->name, $attr->value ); } $div->parentNode->replaceChild( $h2, $div ); } return $doc->saveXML(); } );
render_block_{ブロック名}
フックが実行されるのはフロントだけで、エディター上では下記変わらないのでご注意ください。2024年9月28日 2:09 PM 返信先: Snow Monkey Blocksの「タブ」ブロックにHTMLアンカーをつけたい!高度な設定に[HTMLアンカー]の項目を追加して欲しいです。 #141926一旦、試してみますので、もうしばらくトピックはこのままでも良いでしょうか?
はい!解決したら閉じてください!
これは本当に余談ですが、下記URLもスノーモンキーで構築さてれいますね!
ですね!オレインさんが作られているサイトですが、目を通すと基本的なカスタマイズの方法はわかってくると思うのでおすすめです。
♥ 0いいねをした人: 居ません返信遅くなりすみません!外出先で返信しようと思っていたらパソコンがまさかの電池切れだったため、ひとまず実現に必要な技術だけ書いておきます!
あとでコードを書いてみようと思っていますが、お急ぎであれば下記を参考に書いてみてください。
アコーディオンアイテムの HTML の書き換えなので、
render_block_snow-monkey-blocks/accordion-item
フックを使います。上記トピックでは単純な置換なので str_replace() を使っていますが、今回は開始タグと終了タグの書き換えが必要であり、入れ子を考慮すると単純な置換は難しいので HTML API を使って置換するのが良いと思います。
いくつか方法が考えられます。
## カスタム HTML ブロックを使う
これが1番簡単です。ホームページに割り当てた固定ページの編集画面で、カスタム HTML ブロックをいれて、そこに任意の HTML を書く方法です。PHP は書けないので、PHP も書きたい場合は他の方法が必要になります。
## 子テーマを使う
子テーマをお使いであれば、子テーマの中にトップページ用のテンプレートを作ることで、元のテンプレートを上書きできます。子テーマの中に
/templates/view/front-page.php
をつくって、そこに任意の HTML や PHP を書いてみてください。## My Snow Monkey プラグインを使う
既に制作が進んでいて子テーマに切り替えられない場合は My Snow Monkey プラグインでもテンプレートの上書きができます。
まず、下記を参考に My Snow Monkey プラグインでテンプレートの上書きができるように準備をしてください。
できたら、
plugins/my-snow-monkey/view
というディレクトリ内にテンプレートを作ることで元のテンプレートを上書きできるようになるので、plugins/my-snow-monkey/view/templates/view/front-page.php
をつくって、そこに任意の HTML や PHP を書いてみてください。♥ 0いいねをした人: 居ません2024年9月28日 10:09 AM 返信先: Snow Monkey Blocksの「タブ」ブロックにHTMLアンカーをつけたい!高度な設定に[HTMLアンカー]の項目を追加して欲しいです。 #1419172024年9月28日 12:49 AM 返信先: Snow Monkey Blocksの「タブ」ブロックにHTMLアンカーをつけたい!高度な設定に[HTMLアンカー]の項目を追加して欲しいです。 #141915Snow Monkey Blocks v22.2.0 で機能を追加してみました。
アップデートして試してみてください!
♥ 0いいねをした人: 居ません2024年9月26日 1:31 PM 返信先: Snow Monkey Blocksの「タブ」ブロックにHTMLアンカーをつけたい!高度な設定に[HTMLアンカー]の項目を追加して欲しいです。 #141888こちらの場合はどうでしょうか? A社様のサーバーにWPやSnow Monkey テーマをインストールさせていただだき、A社様には取得されたライセンスキーをご自身で設定いただき、その後、弊社が作り始めるという流れは正しいでしょうか?この場合についても、保守契約等が必要になってまいりますか?
この場合はA社のライセンスキーがA社のサイトに設定されているので、制作については特に制限はありません。
上記のつづきですが、A社様と保守契約等がない状態で、A社様のライセンスキーを弊社に「共有いただだき」、当社のテスト環境などで制作することは不可でしょうか?
はい、ご認識の通りです。
♥ 0いいねをした人: 居ません2024年9月25日 9:52 PM 返信先: Snow Monkey Blocksの「タブ」ブロックにHTMLアンカーをつけたい!高度な設定に[HTMLアンカー]の項目を追加して欲しいです。 #141883Snow Monkey は、HTML 要素の属性として、スクロールしているかしていないかを判別する
data-scrolled
というものを持っています。なのでスマホのときだけ、スクロール時にお知らせバーを消したいということであれば下記の CSS で実現できます。
/* 画面幅が640px以下のときだけ */ @media not all and (min-width:640px) { /* スクロール時だけ */ [data-scrolled=true] { /* お知らせバーを非表示 */ .p-infobar-wrapper { display: none; } } }
が、実際、スクロール時に消えるとすると、1pxでもスクロールした瞬間にパッと消えて、お知らせバー分の高さがなくなるわけなので、かなりガクついてしまいます。例えばスマホのときに未スクロールであれば画面下部に fixed 表示にするとか、何か調整が必要な気がします…。
♥ 0いいねをした人: 居ませんSnow Monkey をインストールして、普通に固定ページ→新規追加でページをつくればブロックエディターでページがつくれます。
問題は、トップページだけはブロックエディターを使わずに独自にコーディングして実装したい、ということですかね?
♥ 0いいねをした人: 居ません -
投稿者投稿