wp widgetで出力されるタグを排除する
2018年10月10日
WordPressのwidgetで出力されるコードには
<div class="textwidget">○○○</div>
というタグが付く。
例えばwidgetのbefore afterで
<p></p>
を指定しても、上記のタグの出力のせいか、
<p>〇〇〇〇</p>
とはならず、
<p> </p> <div class="textwidget">〇〇〇〇</div>
となっていた。
そこで余計なことをする
<div class="textwidget"></div>
をなくすことに。
wp-includes/widget/class-wp-widget-text.phpをコピーをとって編集。
325行目あたりの
<div class="textwidget"><?php echo $text; ?></div>
のdiv囲みを取り払って
<?php echo $text;?>
のみにする。
このままではWordpressがアップデートすると元に戻ってしまうので、class-wp-widget-text.phpをごっそりfunctions.phpに記述。
class WP_Widget_Text_noclass extends WP_Widget {
ここのWP_Widget_Text_noclassの部分を使用に合わせて変更。
public function __construct() { $widget_ops = array( 'classname' => 'widget_text_noclass', 'description' => __( 'textwidgetクラスのないテキストウィジェット' ),
ここのclassname,discriptionをそれぞれ変更。
最後に(ここでハマった)
add_action('widgets_init',create_function('', 'return register_widget("WP_Widget_Text_noclass");'));
を追加。WP_Widget_TYext_noclassの部分は上記に合わせて変更する。
これでOK。