核心文件夹中带有下划线的get_template_part()

我需要一个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 我创建了二十一丁主题的子主题来重现你的方案。子主题的文件夹结构是这样的。
核心文件夹中带有下划线的get_template_part()

文章图片
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标记上方。
核心文件夹中带有下划线的get_template_part()

文章图片
#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之类的版本控制系统。这可能是最好的方法。
【核心文件夹中带有下划线的get_template_part()】第三种选择是对子主题的functions.php文件进行硬编码更改。

    推荐阅读