Lazy Blocksで勝手に出力されるdivをまとめて消す(改)

Lazy Blocksで勝手に出力されるdivを制御してみる(改)

2022.02.09

PHP/WordPress/プラグイン

Lazy Blocksで勝手に出力されるdivをまとめて消す(改)

みなさんお久しぶりです。

今回は、Lazy Blocksを利用した際に勝手に出力されるdivをまとめて消す方法について
めちゃくちゃ簡単でわかりやすい方法を入手したので、それを共有したいと思います。

勝手に出力されるdiv

勝手に出力されるdivってそもそもなにという方にむけて解説します。

コードを早く見せやがれっという方は、スクロールしてください。

divに囲われた状態

Lazy Blocksでは出力する際に、divで囲ってきます。

以上です。

実際、見た目には何も影響ありませんが、気になる人や、jqueryなどで親子関係を指定したい方には厄介になってくるでしょうか。

基本的には、一つ単位であればそのdivを削除するコードは存在します。

そのあたりのことは、過去のBlogや公式ドキュメントを参考にしてみてください。

該当の過去ブログ

公式ドキュメントでの紹介ページ

さて、ここで問題なのは、大量にブロックが存在していた場合、その一つ一つに上記で紹介しているコードを指定しなくてはなりません。

それではとても面倒なので当ブログでも、スラッグを取得してみたり、ポストから取得してみたり、まとめて消せるように色々試行錯誤していたわけです。

しかし今回、Lazy Blocksのフォーラムを覗いていたら、めちゃくちゃ有用に示されていただけでなく、開発者自身も使えましたと返信しているコードが存在しました。

divの削除コード(改)

functions.php

add_filter( 'lzb/block_render/allow_wrapper', '__return_false' );

たったこれだけ。

逆になんで思い付かなかったんだろうという後悔があります。

簡単に解説しますが、ブロックを表示させるときにdivで囲う機能を取りやめる。という感じです。

公式では、指定したslugからdivを削除していたため、いかにしてslugを取得してくるかに注視しすぎていました。

機能をキャンセルさせるフィルターを後からつけるだけ。。。灯台下暗しです。。

最後に

フォーラム(英語)のリンクも載せておきますが、開発者も気づいていなかったような口ぶりじゃないですかね。

しかし、今回でdivをまとめて消す方法について、いったん終止符が打たれたかなと思います。

開発者自身も試したら動いたということを認めているので、今後のアップデート次第でもありますが、私はこのコードを使っていこうかと思います。

今後もまた何かあれば、更新していきます〜。

対象のフォーラムページ(英語)