如何调用子主题中的文件?

时间:2013-01-21 作者:Bhuvnesh Gupta

我创建了一个儿童主题"my-theme" . 时尚。css我什么也没写,只是写了一些强制性的细节。

/*
Theme Name:     my-theme
Theme URI:      http://example.com/
Description:    Child theme for the Twenty Twelve theme 
Author:         Bhuvnesh
Author URI:     http://example.com/about/
Template:       my-theme
Version:        0.1.0
*/
我写的所有风格规则"my-theme/css/style.css" 文件现在在index.php 我在打电话<?php get_header(); ?> 这将调用header.php 现在在header.php 文件我将该css文件称为

<link href="css/style.css" rel="stylesheet" type="text/css" />

但这不是加载我的css。就像这样我打电话给一些.js 下的文件"my-theme/js/" 目录为

<script type="text/javascript" src="js/jquery-1.7.2.min.js"> </script>
这也是不加载的。

我知道我在调用文件或函数时出错。php。

我刚刚复制了完整的文件functions.php 属于twentytwelve . 我有什么错误吗?

请告诉我写什么functions.php 以及如何调用js目录下的js文件等文件。php文件位于includes目录下,图像位于images目录下。

我搜索了如何创建子主题,已经完成,但无法调用文件。

请帮帮我!我会非常感谢你!!!!

3 个回复
最合适的回答,由SO网友:kaiser 整理而成

一个人不能简单地扔<link> (CSS)或<script> 标记到<head> WordPress主题的。

正确的方法:注册、排队。。。塔达

WordPress具有此任务的“依赖API”。它基本上由以下公共职能组成:

然后将函数与deregister scripts or styles, 获取数据from PHP to JS - 例如,将它们用于本地化或AJAX调用,以及checks/Conditionals 查看样式或脚本是否已注册/排队。

如何使用它们首先,您需要确保header.php 文件具有适当的挂钩:

wp_head();
然后为主题添加功能functions.php 文件,如已解释on WP Make. 如您所见,脚本和文件都可以使用wp_enqueue_scripts-钩

add_action( \'wp_enqueue_scripts\', \'wpse82474_load_styles\' );
add_action( \'wp_enqueue_scripts\', \'wpse82474_load_scripts\' );
wpse82474_load_styles()
{
    wp_enqueue_style( /* etc. */ );
}
wpse82474_load_scripts()
{
    wp_enqueue_script( /* etc. */ );
}
主要参数如下

 wp_enqueue_style( $handle, $src, $deps, $ver, $media );
在现实世界中(可以说:在你的主题中),你会像下面这样使用它。示例显示了一个脚本jQuery 作为依赖项加载(换句话说:在排队文件之前加载)。

wp_enqueue_script(
     \'my-theme-script\'
    ,get_template_directory_uri().\'/js/custom_script.js\'
    ,array( \'jquery\' )
);
从您总是想使用的childtheme中获得正确的路径get_stylesheet_directory_uri() 在父主题或“普通”主题中get_template_directory_uri().

从子主题的子文件夹加载将使用如下路径:

$stylesheet_path = get_stylesheet_directory_uri().\'/css/style.css\';
加载WP脚本(&H);core附带的样式如果您想加载core附带的文件,那么您可以简单地将它们排队,而不需要和其他参数。

wp_enqueue_script( \'jquery\' ); // Load jQuery
每个人都是一样的script (or style) shipped with core, as you can read in Codex.

如果您想知道脚本是否已经注册,则无需在core中查找或在Codex中搜索。简单使用wp_script_is() (或与样式等效)。默认情况下,这将检查enqueue 列表,但您也可以使用registereddone 作为参数。

wp_script_is( \'jquery\', \'registered\' ) AND wp_enqueue_script( \'jquery\' );

SO网友:Tom J Nowell

所有包含的js和css文件都使用相对路径包含。这很糟糕。

你会发现使用儿童主题是无关紧要的,因为无论有没有儿童主题,儿童主题都会被严重破坏。

因此,要学会正确地使用wp_enqueue_style 在函数中。php

http://codex.wordpress.org/Function_Reference/wp_enqueue_style

function theme_styles()  
{ 
  // Register the style like this for a theme:  
  // (First the unique name for the style (custom-style) then the src, 
  // then dependencies and ver no. and media type)
  wp_register_style( \'custom-style\',
    get_template_directory_uri() . \'/css/style.css\', 
    array(), 
    \'20120208\', 
    \'all\' );

  // enqueing:
  wp_enqueue_style( \'custom-style\' );
}
add_action(\'wp_enqueue_scripts\', \'theme_styles\');
以及wp_enqueue_script:

http://codex.wordpress.org/Function_Reference/wp_enqueue_script

function my_scripts_method() {
    wp_enqueue_script( \'jquery\' );
}    

add_action(\'wp_enqueue_scripts\', \'my_scripts_method\');
最终注释:

永远不要在标题中直接包含脚本和样式。php总是使用wp\\u enqueue\\u样式和wp\\u enqueue\\u脚本如果你不使用这些函数,缓存插件就无法修改它们,你就会错过一些东西。永远不要在主题中绑定JQuery,始终使用WordPress提供的副本,不要绑定像v1一样过时的版本。7.x

SO网友:Mike Madern

style.css 你的子主题文件,你有一行Template: my-theme. 这应该是要作为父级的模板的名称。

默认的“二十一”主题的子主题示例:

/*
Theme Name:     Twenty Twelve Child
Theme URI:      http://example.com/
Description:    Child theme for the Twenty Twelve theme 
Author:         Your name here
Author URI:     http://example.com/about/
Template:       twentytwelve
Version:        0.1.0
*/
每一行的简要说明:

主题名称。(必需)子主题名称

  • 版本。(可选)子主题版本。E、 g.:0.1、1.0等。
  • 有关儿童主题的更多信息,请参见here 在法典页上。

    这样,对于无法加载的子主题文件,您就不会再有任何问题了。

    结束

    相关推荐