在子主题WP中添加自定义php文件

时间:2018-05-25 10:52:07

标签: php html css wordpress child-theming

我想在我目前使用的主要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文件它不起作用而且我不知道为什么......有人可以解释并帮助我吗?

提前致谢!

2 个答案:

答案 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。

希望这有帮助!快乐编码:)