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

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


切换到HTML编辑视图并在其中发布您的JavaScript(非常糟糕的解决方案)
在键和值对中为该帖子/页面使用特定JavaScript的自定义字段
在footer.php中加载JavaScript文件取决于您所处的页面(尽管这会导致很多条件限制)

请注意,所有页面之间都不会共享JavaScript文件-实际上,该JavaScript文件是特定于您当前正在查看的内容。

有什么想法吗?

评论

元框/自定义字段是您的最佳选择

您如何定义效率?

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

#1 楼

我认为,在效率和使用适当的wordpress方法添加javascript之间的最佳平衡将是沿着主题添加这些内容到您的theme functions.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');


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

评论


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

–鼠标运动
2012年10月10日21:57

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

–鼠标运动
2012年10月11日,凌晨1:40

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

– Ben HartLenn
2012年10月11日,下午2:01

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

–Ciasto piekarz
17年2月7日在7:55

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

– Ben HartLenn
17年3月13日在1:16

#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 Codex的链接http://codex.wordpress.org/Conditional_Tags

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

评论


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

–鼠标运动
2012年10月10日20:45

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

–妮可
2012年10月10日20:48



#3 楼

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