首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用include_once重写add_filter指向文件?

如何使用include_once重写add_filter指向文件?
EN

WordPress Development用户
提问于 2020-01-01 13:43:25
回答 1查看 137关注 0票数 0

我想定制一个插件,它使用一个名为html-供应商-order-page.php的文件来定义内容的样式:

代码语言:javascript
复制
include_once( apply_filters( 'wcpv_vendor_order_page_template', dirname( __FILE__ ) . '/views/html-vendor-order-page.php' ) );

我想通过修改这个文件来创建我自己的html-供应商-order-page.php,并强制插件使用这个文件,而不是使用add_filter。

我正在考虑过滤__FILE__,它是指向我的文件的一个定义的常量。

这有可能吗?

EN

回答 1

WordPress Development用户

回答已采纳

发布于 2020-01-01 13:50:15

你不能只过滤__FILE__。或任意函数或变量。您只能筛选传递给apply_filters()的值。在这种情况下,wcpv_vendor_order_page_template可过滤值是:

代码语言:javascript
复制
dirname( __FILE__ ) . '/views/html-vendor-order-page.php'

换句话说,它是PHP文件的路径。如果要更改加载的PHP文件,可以筛选wcpv_vendor_order_page_template以将路径传递给主题中的文件。

因此,如果您在wp-content/{yourtheme}/wcpv//views/html-vendor-order-page.php中创建该文件的一个版本,您可以使插件加载该版本如下:

代码语言:javascript
复制
add_filter(
    'wcpv_vendor_order_page_template',
    function( $path ) {
        return get_theme_file_path( 'wcpv//views/html-vendor-order-page.php' );
    }
);
票数 1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/355511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档