假设您有这样一个javascript:
function clickedTag( tag ) {
var d = new Date();
console.log( \'A word with tag \' + tag + \'has been cliked at \' + d.toDateString() );
}
在你的帖子中有这样一句话:
敏捷的棕色狐狸跳过懒惰的狗
你想要javascriptclickedTag( "pet" );
将在用户单击单词“dog”时运行。
javascript方面的正确方法可能是在数据属性的帮助下编写单个函数,例如:
敏捷的棕色狐狸跳过懒惰的狐狸<span class="click-tag" data-tag="pet">
狗</span>
以及javascript:
jQuery(document).on( \'click\', \'span.click-tag\', function(e) {
e.preventDefault();
var tag = jQuery(this).data(\'tag\');
if ( typeof tag === \'string\' && tag !== \'\' ) {
return clickedTag( jQuery(this).data(\'tag\') );
}
});
因此,使用一个很小的函数,您可以用任何单词运行javascript函数,而单词本身与传递给函数的参数无关。
到目前为止,一切顺利。然而,这与WordPress无关,是的,将该标记添加到帖子内容中会带来一些您在OP中解释的问题,并且如果您有大量帖子和大量需要“标记”的单词,手动为您需要的每个单词添加跨距码可能会很困难。
但是,是的,短代码可以是一种解决方案。
就拿一个examples 在add_shortcode
在Codex中归档并稍加修改:
function my_first_shortcode( $atts, $word=\'\' ) {
$atts = shortcode_atts( array ( \'tag\' => \'\' ), $atts );
$format = \'<span class="click-tag" data-tag="%s">\' . esc_html( $word ) . \'</span>\';
return sprintf( $format, esc_attr( $atts[\'tag\'] ) );
}
add_shortcode( \'clicktag\', \'my_first_shortcode\' );
一旦您在
functions.php
或者在插件文件中,您可以在帖子中使用快捷代码“clicktag”,例如,您可以编写
敏捷的棕色狐狸跳过懒惰的狗
带有data属性的span将在您的帖子中包含单词“dog”。
结合上面发布的jQuery函数,您就完成了。
请注意,我发布的javascript以及您的javascript代码(函数clickedTag
在本例中),应使用wp_enqueue_script
.一个方便的方法是打电话wp_enqueue_script
在短代码回调中(my_first_shortcode
PHP函数,在上面的示例中)。
最后,您可能希望使用类“click tag”来设置跨度的样式,并让用户了解他们是可单击的。
在这个Gist 你会发现一个可以工作的、随时可以安装的插件(只需下载这两个文件并将它们放在插件文件夹中的一个文件夹中),其中包含我在这里发布的代码的一个稍加修改的版本。
剩下的唯一一件事就是为clickedTag
函数,但此处将不介绍该函数。