我找到了这个Altering registered symbols (R)的答案,我正在尝试实现类似的东西。
客户不希望TM显示上标,他们想要替代版本显示为下标。
我正在尝试创建我的第一个WordPress插件来实现这一点,它将采用任何版本的符号(符号,名称代码,十进制代码或十六进制代码)并将其替换为下标风格版本)。
这是我到目前为止所得到的......
<?php
/*
Plugin Name: Subscript the TM symbol
Plugin URI: TBD
Description: This is my first plugin. Client wants the TM subscript. So I'm figuring it out. :D
Version: 0.1
Author: Sarah Collins
Author URI: http://sarahcollinsweb.design
*/
( function( $ ) {
"use strict";
$( function () {
var replaced1 = $('').html().replace('™', '<sub>™</sub>');
$('').html(replaced1;
});
$( function () {
var replaced2 = $('').html().replace('™', '<sub>™</sub>');
$('').html(replaced2);
});
$( function () {
var replaced3 = $('').html().replace('™', '<sub>™</sub>');
$('').html(replaced3);
});
$( function () {
var replaced4 = $('').html().replace('™', '<sub>™</sub>');
$('').html(replaced4);
});
}(jQuery));
?>
:\我发生致命错误。我做错了什么?
答案 0 :(得分:0)
我看到一些需要修复的事情。首先,这是更新版本:
<?php
/*
Plugin Name: Subscript the TM symbol
Plugin URI: TBD
Description: This is my first plugin. Client wants the TM subscript. So I'm figuring it out. :D
Version: 0.1
Author: Sarah Collins
Author URI: http://sarahcollinsweb.design
*/
add_action( 'wp_head', function () {
?>
<script>
(function ($) {
"use strict";
$(document).ready(function(){
var replaced1 = $('body').html().replace('™', '<sub>™</sub>');
$('body').html(replaced1);
var replaced2 = $('body').html().replace('™', '<sub>™</sub>');
$('body').html(replaced2);
var replaced3 = $('body').html().replace('™', '<sub>™</sub>');
$('body').html(replaced3);
var replaced4 = $('body').html().replace('™', '<sub>™</sub>');
$('body').html(replaced4);
});
}(jQuery));
</script>
<?
} );
这是变化:
你正在混合使用PHP和Javascript,这并不好。 Javascript是在用户的Web浏览器中运行的代码,因此您需要实际输出该代码。在上面的代码中,PHP解释器实际上是在尝试运行JavaScript代码,这绝对不会起作用 - 答案是将最小的东西分开,我将在下面解释。
相反,为了让您的想法有效,您必须使用WordPress's actions。将操作视为WordPress处理请求并为访问者生成页面时发生的事件是有帮助的,WordPress为您提供了做某事的机会 - 任何事情!在这种情况下,您希望将一些JavaScript添加到HTML文档的<head>
,并且您要挂钩的操作是wp_head
action。 (仅供参考,WordPress提供了许多动作,你甚至可以make your own - 这会变得更加先进。但是,可以说这是WordPress允许插件/主题的基本机制运行自定义代码。)
我简化了您的JavaScript代码并删除了几个(function(){}(...))
包装器;那些并没有真正做任何事情来提高你的代码效率。我想你可能只是复制/粘贴了你在这里建立的部分,但是可以减少/删除它。
同样在JavaScript中,我将代码包装在$(document).ready()
回调中;这样,在页面准备好之前,您的代码才会运行 。这很重要,否则你的代码只会在加载后立即运行,并且可能无法正常工作 - 在尝试操作页面的text / html内容之前,你应该总是等到文档准备就绪。
正如旁注,有些人可能会指出这不是使用jQuery的最有效方式 - 但我认为现在可以跳过它!主要是试图演示如何从WordPress插件运行JavaScript,所以请试一试,让我们知道是否有任何问题/问题。