我想在我目前使用的主要WP主题中的php文件中添加cutom html代码。所以我决定使用儿童主题来做到这一点,但我不知道我的代码中哪些地方出错,以及为什么这不起作用?
这是我的functions.php代码:
<?php
add_action( 'wp_enqueue_scripts', 'boo_child_theme_style', 99 );
add_action( 'wp_enqueue_scripts', 'boo_child_portfolio_style', 99 );
function boo_parent_theme_scripts() {
wp_enqueue_style( 'base', get_template_directory_uri() . '/style.css' );
}
function boo_child_theme_style(){
wp_enqueue_style( 'child-boo-style', get_stylesheet_directory_uri() . '/style.css' );
}
function boo_parent_portfolio_scripts() {
wp_enqueue_style( 'base', get_template_directory_uri() . '/templates/portfolio/tmpl-grid.php' );
}
function boo_child_portfolio_style(){
wp_enqueue_style( 'child-boo-style', get_stylesheet_directory_uri() . '/tmpl-grid.php' );
}
因此对于style.css它可以工作但是对于php文件它不起作用而且我不知道为什么......有人可以解释并帮助我吗?
提前致谢!
答案 0 :(得分:0)
您无法通过脚本/样式系统将PHP排入队列。
要使用子主题替换部分/全部页面,您需要替换该页面的模板。
有关WordPress如何为页面选择正确模板的详细信息,请参阅Template Herarchy。
如果您只想更改父主题开发人员的页面的一小部分,那将是多么容易。
有些主题实现了过滤器来帮助子主题修改页面,但正如我所说,他们没有这样做,所以它可能不是你可以使用的东西。
答案 1 :(得分:0)
@arcath是对的,你不能使用Enqueue函数添加php文件。它们仅用于添加/覆盖.css和.js文件。对于使用wp_enqueue_style的样式表,也可以使用两种不同的方法,对于Javascript,使用wp_enqueue_scripts。
不要再次调用方法调用enqueue方法的最佳方法是在子目录示例中的function.php中只调用一次。
function adding_scripts_and_styles() {
wp_enqueue_script('unique_child_custom_js', get_stylesheet_directory_uri() . '/directory_path_if_any/custom.js', array('jquery'), true, true );
wp_enqueue_script('unique_child_custom_css', get_stylesheet_directory_uri() . '/directory_path_if_any/custom.css');
}
add_action( 'wp_enqueue_scripts', 'adding_scripts_and_styles');
对于重写wordpresss模板,在您的子主题wordpress目录中创建一个具有相同名称的php文件。 Wordpress在加载时首先读取子主题模板文件。
示例如果要覆盖archive.php页面模板,在子主题中创建archive.php,然后wordpress将使用子主题中的archive.php文件,而忽略父主题archive.php。
希望这有帮助!快乐编码:)