我需要一个listings_recently.php文件的子副本来对其进行更改。我需要将此文件包含在我的子主题中:/themes/listingeasy/core/widgets/listings_recently.php
据我所知, 我需要告诉主题来寻找该文件。这是在我的孩子的主题functions.php中完成的, 对吗?
这就是我的functions.php:
get_template_part('get_stylesheet_directory() . "/core/widgets/listings"', 'recently');
get_template_part('get_stylesheet_directory() . "/core/widgets/listings_recently.php"');
两行均不工作。
我该如何进行?这是文件夹架构:
themes
listingeasy
single.php
core
widgets
listing_recently.php
listingeasy-child
functions.php
single.php (I made changes here and its working)
core
widgets
listing_recently.php (Changes here aren't working)
#1
我创建了二十一丁主题的子主题来重现你的方案。子主题的文件夹结构是这样的。
functions.php
<?php
add_action( 'wp_enqueue_scripts', 'enqueue_child_theme_styles', PHP_INT_MAX);
function enqueue_child_theme_styles() {
wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
}
get_template_part( 'core/widgets/listings_recently' );
listings_recently.php
<h1>Sagar Tamang</h1>;
<?php
你需要使用get_template_part(‘core / widgets / listings_recently’);包含带下划线的文件。如果你在functions.php中使用了get_template_part()函数, 则输出似乎在HTML标记上方。
#2
我不知道你的主题。但是, 当你要编辑listings_recently.php中的功能时, 可以尝试将这些功能复制到你的子主题functions.php中并在此处进行编辑。在大多数情况下, 它都有效。
问候汤姆
编辑:尝试require();在你的儿童主题functions.php中:
require('core/widgets/listings_recently.php');
编辑2(请参阅注释, 主题本身具有自己的get_template_directory())
get_template_directory()
返回父模板目录的路径。采用
get_stylesheet_directory()
返回你的子主题目录的路径
#3
我相信我现在明白了你在这里想要做什么。看来你正在尝试将文件的副本添加到子主题中, 以便可以编辑该文件, 并使这些更改覆盖父主题, 而不更改父主题的文件。这不是对任意php文件的本机支持的操作, 仅对主题模板文件有效。
你需要将其移动到主主题目录(与single.php所在的目录相同), 并为其指定适当的主题层次结构文件名。这就是为什么你对single.php文件所做的更改起作用的原因, 而对于此特定文件却无效。 Single.php是已知的模板, 你的文件只是你添加的php文件。
另外, 你可以更改你的listings_recently.php文件, 并在父主题中替换当前版本。如果你担心丢失旧版本, 请将其保存到桌面或使用GitHub之类的版本控制系统。这可能是最好的方法。
第三种选择是对子主题的functions.php文件进行硬编码更改。
评论前必须登录!
注册