POST_CONTENT中的onClick未出现在POST tinymce编辑器中

时间:2018-03-29 作者:J.BizMai

我正在迁移。我制作了一个PHP脚本来在新的WordPress数据库中生成帖子。帖子内容包含一个HTML链接,其中包含href="javascript:"onClick="trackOutboundLink(\'url\')".

post_content in the new database

<div>
  <a class="exclusive button-exclusive" href="javascript:" onclick="trackOutboundLink(\'url\'); return false;" rel="nofollow"><span>&#9655; Text link</span></a>
</div>
出于某种原因hrefonclick 属性未显示在管理帖子编辑器中。为什么?我怎样才能解决这个问题?

1 个回复
最合适的回答,由SO网友:Dave Romsey 整理而成

默认情况下,TinyMCE设置allow_script_urlsfalse, 这就是导致href 要删除的链接中的属性和值。

也为了最佳实践,TinyMCE does not allow the onlcick attribute on links 默认情况下。这也可以改变。

这个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;
}

结束