フォーラムへの返信
-
投稿者投稿
-
v13.1.0 で修正を入れました!
♥ 0いいねをした人: いませんあ、なるほどです。サイト全体の「追加 CSS」を想定していました。
ブロックごとの追加 CSS に追加すると、そのブロックのセレクタが補完されちゃうんですよね。
とりあえず、アップデートまではそれでしのいでください!♥ 0いいねをした人: いません確認したところ、
z-index: 1;
が追加されていないっぽいです(今は消してますか?)。また、
.custom-hover-block
が指定されたブロックもそのページ上には無さそうな気がします。デベロッパーツールで追加したところ、クリックできるようになりました。
※マウスカーソルがスクショできなかったので、クリック範囲がわかりやすいようにbackground: red
を指定しました。♥ 0いいねをした人: いませんページを拝見したところ、
.wp-block-cover .wp-block-cover__background
がz-index: 1
になっており(WordPRess コアの CSS)、デコレーターのリンクよりも階層が上になってしまうためにリンクが効かなくなってしまっているようでした。これまで効いていて最近効かなくなったのであれば、最近のコアアップデートでカバーブロックの CSS に変更が入ったのだと思います。
ひとまず、下記の CSS を「追加 CSS」に追加してみてもらえないでしょうか? おそらく一時しのぎできるかと!
[data-unitone-layout~=decorator__link]::before { z-index: 1; }
unitone に修正を入れようと思いますが、上記の CSS で良いのか、他にもっと良い方法があるか調べてみようと思います。
♥ 0いいねをした人: いませんこれは僕も常々思っていたのですが、実装がそこそこ手間で後回しにしてしまっていました^^;
とりあえず、忘れないように開発リストには入れておこうと思います…!♥ 0いいねをした人: いません確かにリロードしたら再発しました…。で、色々調査したところ、原因がわかりました!
wp_options
テーブルの型が原因でした。これが通常の
wp_options
テーブルの構造です。option_value
が設定値が保存される場所で、その型がlongtext
となっているのがわかると思います。そしてこれが共有いただいたサイトの
wp_options
テーブルの構造です。option_value
の型がtext
になっています。text
だと保存できる設定値の大きさに制限があるため、パターンのデータが全て保存できず途中で切れてしまい、実行時に復元できない、という状態だったようです。どういう経緯でtext
型になってしまったのかはわかりませんが、phpMyAdmin
等のデータベースを触れるツールで型を変更してしまえば正しく動作するようになると思います。※ちなみにこのスクショは Local に入っている AdminerEvo のものです。Local であればそれで型が変更できます。
♥ 0いいねをした人: いませんデータ確認しました、ありがとうございます!
調査したところ、シリアライズされたパターンのデータが保存されているところまでは予想通りだったのですが、そのシリアライズされたデータが不完全な状態で保存されていたため、
maybe_unserialize()
でも復元できなかったようです。本来は「ダッシュボード → 外観 → unitone セットアップ → パターンライブラリーからパターンを再取得する」からパターンのデータを再取得できるのですが、上記不具合のためにエラーがでて再取得できないため、コードを書いて保存しているパターンのデータを一度消して頂く必要があります。
themes/unitone/inc/remote-block-patterns.php
の$transient = get_transient( 'unitone-remote-patterns' );
の上の行に
delete_transient( 'unitone-remote-patterns' );
を追加してください。そしてリロードしてエラーがでないことを確認したら追加したコードを消してください。その後「ダッシュボード → 外観 → unitone セットアップ」を開き、「パターンライブラリーからパターンを再取得する」で最新のパターンデータに更新してみてください。
不正なデータが保存されそうになったときは保存しないように、unitone のほうのコードも修正したいと思います。
以上、ご確認よろしくお願い致します!
♥ 0いいねをした人: いませんよろしくお願いします!!
♥ 0いいねをした人: いませんoh…
となるとあとは実際にそのデータを云々して調査してみないとわからないのかなと…。
ということで、もし可能であれば次のいずれかをお願いしたいです!1. All-in-One WP Migration のデータを提供いただく
2.var_dump( esc_html( $remote_block_patterns ) );
を追加していただき、出力された文字列を共有していただく(1)が確実性は高いと思うのですが、セキュリティ等の関係で難しい場合もあると思うので、その場合は(2)のデータを頂ければこちらの環境で擬似的に調査できるかなと考えています。もし(1)が可能な場合はオンラインコミュニティ(Discord)の DM でデータを頂ければと思います。
ご検討よろしくお願いします!
♥ 0いいねをした人: いませんありがとうございます! なぜかパターンのデータがシリアライズされているみたいですね…。
こちらで意図した挙動では無いので、例えば何らかのプラグインがなんらかの条件でデータをシリアライズしているとか、僕が使っているコアの関数が何らかの条件で内部でシリアライズしているとか、そういうのがあるのかもしれません。
こちらで状況が再現できていないため根本的な解決が難しいのですが、一時的な対策として、下記を試してみてほしいです。
また
foreach ( $remote_block_patterns as $pattern ) {
の上の行に、下記を追加してみてください!$remote_block_patterns = maybe_unserialize( $remote_block_patterns );
もしエラーメッセージがでたら、どういうメッセージがでたか教えてください。
♥ 0いいねをした人: いませんすみません! 下記の確認をお願いしてよろしいでしょうか?
themes/unitone/inc/remote-block-patterns.php
のforeach ( $remote_block_patterns as $pattern ) {
の上の行に
var_dump( $remote_block_patterns );
を追加そして画面をリロードすると
$remote_block_patterns
に保存されている値が画面に表示されると思うので、それが何か教えてください! 確認したあとは追加したコードは消して大丈夫です。♥ 0いいねをした人: いませんその
fixed
の設定の下のright
とleft
に0
を入力するとどうでしょうか?今気づいたのですが、6.6 からなのか、エディター上ではカバーの CSS がコアの CSS に負けて
position
が反映されないですね…。あとで直しておきます。♥ 0いいねをした人: いませんセクションブロックが無かったら、ブロックの入れ子構造が大変なことになっていたでしょうから…(笑)
そうなんです!まさに頻出する入れ子構造を1ブロックで実現するためにつくったブロックなんです。
今後他にも頻出する入れ子構造を抽出できたら、セクションブロックのような役割のブロックも増やしていきたいなと考えています。ただ、別々のパディングを設定できるようにすることで(操作においては)複雑さを減らすことができるのも事実だと思うので、今後じっくり検討したいと思います。
問題が解決できたらクローズをお願いしますm(_ _)m
♥ 0いいねをした人: いませんお返事遅くなりすみません! わかりやすく説明していただきありがとうございます!
まず、セクションブロックはコンテンツごとにセクションを区切るためのものなので、上下に同じ大きさのパディングがつくようになっています。背景色を付けるとわかりやすいと思うので、スクショを用意してみました。
Murota さんの例だと、2つのセクションブロックには同じ背景色が設定されているのではないかと思います。そしてそれらの上下と、間の間隔を同じに揃えたいということは、意味合い的にはセクション(親)の中に2つのコンテンツがあるような感じなのかなと想像しました。
その場合、まずはセクションブロックを1つ用意して、その中に2つのコンテンツを組み立てるのが良いのかなと思いました。どう組み立てるかは色々考え方があると思いますが、ここではセクションブロックを入れ子にしてみることにします。
まず、親のセクションブロックですが、「上下パディング」と「間隔」が同じ大きさであれば Murota さんがやりたい余白間隔になります。
※上下パディングのデフォルト値(設定値が空白のとき)は内部的に「3XL」ですが、一応明示的に揃えていたほうが今後のアップデートの影響を受けにくいと思うので、明示的に 3XL を設定して揃えています。次に、子のセクションブロックですが、上下左右のパディングは不要なので「無し」に設定します。
これで実現できると思いますがいかがでしょうか?
ちょっと設定が複雑にはなってしまいますが…。♥ 0いいねをした人: いませんお返事遅くなりすみません! 具体的にどういったシチュエーションで上下別々の padding を設定したいのかが知りたいです。
別々の padding を設定できれば便利ですが、ブロックの役割は曖昧になる(Every Layout 的ではなくなる)ので、できるようにするかどうかは慎重に決定する必要があります。
シチュエーションによっては上下に別々の padding を設定しなくとも他のブロックの組み合わせで実現できる場合もあるのかなと思うので、よかったら教えてください!
♥ 0いいねをした人: いません -
投稿者投稿