調べてみたところ、ブランドにロゴが設定されていない場合、ロゴの代替としてブランドの名前が表示されてこのようになっていることがわかりました。サイズの揃ったロゴを設定すればいまほど酷い見た目ではなくなります。
ロゴがない場合やそういうレイアウトが好ましくない場合のため、ロゴがない場合についても書いておきます。
この「ロゴがないならブランド名」という処理はフィルターなど無しでperfect-woocommerce-brands/classes/shortcodes/class-pwb-all-brands.php
にベタ書きされています。(80行〜)
こんなものはどうしようもないので直接書き換えるのが割と現実的な手に思えます。
それが嫌であれば、ショートコードハンドラのフィルターを使います。
以下のコードを使うことで、だいたい質問文にある書式を実現できます(HTMLは酷いことになりますが)。
php
1add_filter( 'do_shortcode_tag','pab_modify',10,3);
2function pab_modify($output, $tag, $attr){
3 if ('pwb-all-brands' != $tag) {
4 return $output;
5 }
6 if(!isset($attr['title_position']) || ('after' != $attr['title_position'])){
7 return $output;
8 }
9 return preg_replace('/(<div class="pwb-brands-col3">\s++<div>\s++<(?:[^>"]|"[^"]++")++>)[^<]++</a>\s++</div>\s++<p>\s++([^<]++<small>[^<]++</small>)\s++</p>\s++</div>/s', "$1$2</a></div></div>", $output);
10}
このコードはショートコードが処理されるまでのどこかに書けば良いはずです。
例えば、使用しているテーマのfunction.php
に書けば動作します。
また、プラグイン Hello Dollyを有効化して編集し、?>
の前に書いても動作しました。
長期的には、メンテナンス性のために子テーマを作るか(すでに作っているならそれを使えば良いですが)、これだけをやるプラグインを作るかすると良いと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。