将javascript文件添加到特定帖子和/或页面的最有效方法?


17

我想知道最有效的方法是为帖子和/或页面添加一个javascript文件。

这是我想出的一些解决方案:

  • 切换到HTML编辑视图并在其中发布您的JavaScript(非常糟糕的解决方案)
  • 键和值对中具有该帖子/页面的特定JavaScript的自定义字段
  • 在footer.php中,根据您所在的页面加载JavaScript文件(尽管这样会产生很多条件)

附带说明一下,所有页面之间都不会共享任何JavaScript文件-它实际上是特定于您当前正在查看的内容。

有什么想法吗?


元框/自定义字段是您的最佳选择
Miha Rekar,2012年

您如何定义效率?
fuxia

1
“高效”是指最少的代码冗余和最有效的方法,专门针对单个帖子/页面进行此操作。
mousesports 2012年

Answers:


30

我认为,效率与使用适当的wordpress方法添加javascript之间的最佳平衡将是在主题函数(php)中添加以下内容。例如:

functions.php:

function load_scripts() {
    global $post;

    if( is_page() || is_single() )
    {
        switch($post->post_name) // post_name is the post slug which is more consistent for matching to here
        {
            case 'home':
                wp_enqueue_script('home', get_template_directory_uri() . '/js/home.js', array('jquery'), '', false);
                break;
            case 'about-page':
                wp_enqueue_script('about', get_template_directory_uri() . '/js/about-page.js', array('jquery'), '', true);
                break;
            case 'some-post':
                wp_enqueue_script('somepost', get_template_directory_uri() . '/js/somepost.js', array('jquery'), '1.6', true);
                break;
        }
    } 
}

add_action('wp_enqueue_scripts', 'load_scripts');

这使您可以完全控制要加载的内容,可以在themes.php文件中的集中位置来编辑要加载的内容:并且,这种方式使用wordpress方法将javascript 安全地添加到帖子和页面中。


1
不错的小功能。您认为拥有“集中位置”非常有用。谢谢你
mousesports 2012年

3
我想这可以清除一点。您基本上是在用两个不同的开关盒检查同一件事。我会说结合两个开关盒和有条件的if可能是if (is_page() || is_single())。你觉得本?
mousesports 2012年

听起来对我来说是一种进步。好一个!
Ben HartLenn

@Ben是functions.php 里面的一个主题还是wp-includes中的一个?我的页面标题是“ 访问家庭在线”,我已将您的功能home更改为,Access to Home Online但它不起作用?
Ciasto piekarz

@Ciastopiekarz我已经更新了答案,以更好地表明代码已放入主题themes.php文件中。
Ben HartLenn

2

我要做的是放在页脚或页眉中,并使用php条件语句。

例如:

<?php if (is_page ('your-page')){?>

  <script type="text/javascript" src"the file path"></script>

<?php } elseif ( is_page ('another')){?>

  <script type="text/javascript" src"the file path"></script>

<?php } else { ?>

  <script type="text/javascript" src"the file path"></script>

<?php } ?>

这样一来,您就不会始终在每个页面加载时调用所有脚本,而仅调用所需的脚本。

这是指向Wordpress代码库的链接http://codex.wordpress.org/Conditional_Tags

而且,如果您有特殊的脚本,可能仅需要在每个帖子中调用它们,请使用自定义字段。


谢谢妮可-这是#3。考虑到我不会有很多页面,这是一个不错的解决方案……仍在考虑。
mousesports 2012年

上面的内容可以与wordpress Codex的各个项目配合使用,例如:is_categories,is_single(用于帖子),is_post_type ...我在上面的回答中添加了一个指向wordpress条件列表的链接。
妮可

0

另一种经过测试的方法是在下面直接从编辑器添加页面,并在脚本标签中添加注释,否则将无法正常工作。

<script type="text/javascript">
<!--
var a = 5;
alert("hello world. The value of a is: " + a);
-->
</script>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.