0

我遵循了有关创建自己的自定义 WP 主题的教程。在我更深入地添加脚本之前,它们被简化为基础并且工作得很好。每次我尝试添加新插件或涉及 javascript 的东西时,滑块都会停止工作,或者新插件不起作用。

我只是在添加插件、手动添加脚本等时寻求有关良好编程技术或实践的建议。

如果您手动将javascript粘贴到<head>您应该将其放在某些代码之上还是之下以防止冲突?

不要求讲义或厨房水槽。我只是不明白添加脚本的顺序或最好的方法。这是我的基本 WP header.php 文件的外观示例,在我开始添加插件之前它可以完美运行:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">    <html xmlns="http://www.w3.org/1999/xhtml">
<head profile="http://gmpg.org/xfn/11">
<title><?php bloginfo('name'); ?><?php wp_title(); ?></title>
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" /> 
<meta name="generator" content="WordPress <?php bloginfo('version'); ?>" /> <!-- leave this for stats please -->
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="<?php bloginfo('rss2_url'); ?>" />
<link rel="alternate" type="text/xml" title="RSS .92" href="<?php bloginfo('rss_url'); ?>" />
<link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="<?php bloginfo('atom_url'); ?>" />
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
<?php wp_get_archives('type=monthly&format=link'); ?>
<?php //comments_popup_script(); // off by default ?>
<?php wp_head(); ?>

<script type="text/javascript" src="click2call.js"></script>
<script type="text/javascript">
    function send_call() {
        document.getElementById("CallBtn").value="Dialing.."; 
        var button_id  = document.getElementById('button_id').value;
        var cid_number = document.getElementById('cid_number').value;
        var cid_name   = document.getElementById('cid_name').value;
        click2call(button_id, cid_number, cid_name);
    }
    jQuery('.sub-menu').parent().find('a:first').removeAttr('href').css('cursor','default');
</script>

4

3 回答 3

1

通常,防止命名冲突的最安全方法是始终为函数和变量名称添加唯一前缀。

假设您编写了一个名为“begin_slide()”的函数。这可能会与 NUMEROUS 其他插件和脚本冲突,所以如果你想确保你的 - 并且只有你的 - 被调用,你可以将它命名为“LITguy_begin_slide()”。

于 2012-08-30T23:29:31.087 回答
1

我强烈推荐阅读Addy Osmani 关于 JavaScript 中良好命名空间模式的大量文章。使用立即调用的函数表达式来防止全局范围问题并使用唯一的对象名称作为所有专有函数的前缀将使所有代码保持独立。

此外,如果您的主题具有特定的 JavaScript 库依赖项(如 jQuery、Underscore 等),您应该学习如何以“WordPress 方式”包含内容,以防止在多次意外包含公共库时常见的命名冲突。

于 2012-09-01T15:31:04.937 回答
0

您可以做几件事。

  • 您可以尝试确认一个插件是“ADSafe”: http: //www.adsafe.org/,但有很多插件不是我仍然会使用的。
  • 确保命名空间是这样的:

var mynamespace = 命名空间 || {};

(function() {  
   function myClass() {  
   }  

   mynamespace.myClass = myClass();  
}());

或者

(function(){
   mynamspace.something = {
      something : function(){
      }
   }
}());
  • 您可以尝试查看您的库或插件是否存在“noConflict”模式并设置该变量。
  • 尽可能避免使用全局变量
  • 希望和祈祷?
于 2012-08-31T00:13:20.473 回答