前提・実現したいこと
<a>タグで<div>タグを囲んでも、wordpressの自動修正機能で修正されないようにしたい。
発生している問題・エラーメッセージ
wordpressのフロントページにおいて<a>タグで<div>タグを囲って、ページを更新すると、
一度は反映されますが、
次の更新時には、wordpressの自動修正機能のためか、<a>タグが<p>タグで囲まれてしまい、リンクが外れてしまいます。
その都度修正し直さなくてはいかず、時間がかかってしまうし、htmlの知識がないユーザに編集を任せられない状況となっています。
該当のソースコード
【記述したコード】
<div class="small-box"> <a href="http://XXXXXX"> <div class="title">タイトル</div> <div class="photo"><img src="http://XXXXX" alt="" /></div> </a> </div>
↓↓↓↓↓
【wordpressによって書き換えられた後】
<div class="small-box"> <p><a href="http://XXXXXX"></a></p> <div class="title">タイトル</div> <div class="photo"><img src="http://XXXXX" alt="" /></div> <p></p> </div>
試したこと
インターネットで検索した結果、
「ビジュアルエディタの自動整形機能を無効化する方法」
(https://dainashiyesterday.com/post-4874/)
というサイトを参考に、以下のコードをfunction.phpに追記しましたが、
ほかの個別ページでは上手くいきましたが、
フロントページに設定したTOPページではなぜか反映されず、
状況が改善されません。
フロントページでも反映させるには、どのような記述をfunction.phpに追記すればよいかを
PHPやwordpressに詳しい方がいらっしゃいましたら、
ぜひご教授いただけますでしょうか?
▼▼▼▼▼▼以下function.phpに記述している全コードです▼▼▼▼▼▼
<?php if ( !defined( 'ABSPATH' ) ) { exit; } //親スタイルシート読み込み add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' ); function theme_enqueue_styles() { wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' ); } /* ビジュアルエディタがタグを勝手に削除するのを阻止 ---------------------------------------------------------- */ function custom_tiny_mce_before_init( $init_array ) { global $allowedposttags; $init_array['valid_elements'] = '*[*]'; //すべてのタグを許可(削除されないように) $init_array['extended_valid_elements'] = '*[*]'; //すべてのタグを許可(削除されないように) $init_array['valid_children'] = '+a[' . implode( '|', array_keys( $allowedposttags ) ) . ']'; //aタグ内にすべてのタグを入れられるように $init_array['indent'] = true; //インデントを有効に $init_array['wpautop'] = false; //テキストやインライン要素を自動的にpタグで囲む機能を無効に return $init_array; } add_filter( 'tiny_mce_before_init', 'custom_tiny_mce_before_init' );
補足情報(FW/ツールのバージョンなど)
wordpressのバージョンは最新の 4.9.8–ja です。
回答2件
あなたの回答
tips
プレビュー