私は移行をしています。新しいWordPressデータベースに投稿を生成するためのPHPスクリプトを作成しました。投稿コンテンツにはhref="javascript:"
とonClick="trackOutboundLink('url')"
を含むHTMLリンクが含まれています。
新しいデータベースのpost_content
<div>
<a class="exclusive button-exclusive" href="javascript:" onclick="trackOutboundLink('url'); return false;" rel="nofollow"><span>▷ Text link</span></a>
</div>
何らかの理由で、href
およびonclick
属性が管理ポストエディタに表示されませんでした。どうして?どうすればこれを修正できますか?
デフォルトでは、TinyMCEは allow_script_urls
をfalse
に設定します。これにより、リンク内のhref
属性と値が削除されます。
またベストプラクティスのために、 TinyMCEはデフォルトでリンク上のonlcick
属性を許可していません 。これも変更することができます。
tiny_mce_before_init
フックを使ってTinyMCEのオプションを変更し、このコンテンツが削除されないようにすることができます。
/**
* Filters the TinyMCE config before init.
*
* @param array $mceInit An array with TinyMCE config.
* @param string $editor_id Unique editor identifier, e.g. 'content'.
*/
add_filter( 'tiny_mce_before_init', 'wpse_tiny_mce_before_init', 10, 2 );
function wpse_tiny_mce_before_init( $mceInit, $editor_id ) {
// Allow javascript: in href attributes.
$mceInit['allow_script_urls'] = true;
// Allow onclick attribute in anchor tags.
if ( ! isset( $mceInit['extended_valid_elements'] ) ) {
$mceInit['extended_valid_elements'] = '';
} else {
$mceInit['extended_valid_elements'] .= ',';
}
$mceInit['extended_valid_elements'] .= 'a[href|rel|class|id|style|onclick]';
return $mceInit;
}