如何在wordpress中替换一个页面模板的样式表和javascripts

时间:2014-02-12 16:49:25

标签: javascript php wordpress wordpress-plugin wordpress-theming

我要浏览互联网大约四个小时才能找到答案。

我有一个功能丰富的javascript / php / html应用程序。 它包括3个css文件和5个javascript文件。

我想在wordpress页面中构建它。

我已经制作了自定义页面模板:checkout.php

现在我需要用自己的替换所有样式表和javascripts。

我知道如何检查模板:

<?php if(is_page_template('checkout.php')) :?>
<link rel="stylesheet" type="text/css" href="<?php echo get_stylesheet_directory_uri(); ?>/stylesheets/main.css"/>
<link rel="stylesheet" type="text/css" href="<?php echo get_stylesheet_directory_uri(); ?>/stylesheets/jquery.Jcrop.css" />
<link rel="stylesheet" type="text/css" href="<?php echo get_stylesheet_directory_uri(); ?>/stylesheets/styles.css" />
  <script src="<?php echo get_template_directory_uri(); ?>/javascripts/js_checkout/jquery.min.js"></script>
        <script src="<?php echo get_template_directory_uri(); ?>/javascripts/js_checkout/jquery-ui.js"></script>
        <script src="<?php echo get_template_directory_uri(); ?>/javascripts/js_checkout/jquery.Jcrop.js"></script>
        <script src="<?php echo get_template_directory_uri(); ?>/javascripts/js_checkout/script.js"></script>

我还猜测这个函数会将所有样式表和javascripts添加到我的新模板中:

function theme_name_scripts() {
    wp_enqueue_style( 'style-name', get_stylesheet_uri() );
    wp_enqueue_script( 'script-name', get_template_directory_uri() . '/js/example.js', array(), '1.0.0', true );
}

add_action( 'wp_enqueue_scripts', 'theme_name_scripts' );

但是wp_enqueue_style和wp_enqueue_script会替换默认样式和脚本,还是只添加另一个????

有人可以告诉我该怎么做以及要编辑的文件? header.php或general-template.php ??

提前致谢

2 个答案:

答案 0 :(得分:0)

它真的取决于你正在使用的主题。 你在使用儿童主题吗? 现有样式表位于何处? 如何将这些样式表和javascript文件插入/注入页面?

在查看现有代码时,您可以正确地假设此时正在执行的操作正在添加到页面上已存在的内容。

您要删除所有其他样式表吗? 现有的javascript怎么样? 从你添加的东西 - 在我看来 - 你只想添加...因为jquery-ui需要jquery

ps不要忘记你的

<?php endif; ?>

一次性使用---作为程序员,我选择“更简单,更好”的方法。 上面的代码最好添加到子主题中的functions.php中。

除非您可以从其他页面添加额外的.js和.css文件中受益...在这种情况下,构建部分文件会更好。但那是另一次的讨论。

如果您需要进一步的帮助,请告诉我

答案 1 :(得分:0)

如果您直接编辑模板,请使用您的 如果(is_page_template /////// 插入样式表,然后将其关闭 } else {//在此处放置默认样式表}

如果要删除所有.js文件,可以使用wp_dequeue_script http://codex.wordpress.org/Function_Reference/wp_dequeue_script
或者你可以将.js和css包装在同一个if语句中。

虽然肯定有更好的做法..... ONE将是样式表 - 为什么不利用if is_template语句添加新的body类并仅更改必要的项。

EX:body.cart p {background:red;}会使段落有红色背景但仅限于购物车页面。