Php 从WordPress中的插件加载模板
我正在尝试制作我的第一个插件,但我被卡住了。这是我的想法。 当我的插件被激活时,它将为该帖子类型创建一个帖子类型和两个分类法(在我的例子中,帖子类型名称是“Ads”)。 另外,我创建了两个模板页面,一个用于显示所有广告帖子类型文章的列表,另一个用于同一帖子类型的单个页面 现在我的问题是如何告诉WordPress在插件激活时从插件文件夹而不是主题文件夹中查找模板。?Php 从WordPress中的插件加载模板,php,wordpress,wordpress-theming,custom-wordpress-pages,wordpress-plugin-creation,Php,Wordpress,Wordpress Theming,Custom Wordpress Pages,Wordpress Plugin Creation,我正在尝试制作我的第一个插件,但我被卡住了。这是我的想法。 当我的插件被激活时,它将为该帖子类型创建一个帖子类型和两个分类法(在我的例子中,帖子类型名称是“Ads”)。 另外,我创建了两个模板页面,一个用于显示所有广告帖子类型文章的列表,另一个用于同一帖子类型的单个页面 现在我的问题是如何告诉WordPress在插件激活时从插件文件夹而不是主题文件夹中查找模板。? 这是我可以在插件文件中执行的操作,还是我必须为此创建另一个文件?这应该满足您的要求: 首先,这个钩子告诉WordPress哪个是插件
这是我可以在插件文件中执行的操作,还是我必须为此创建另一个文件?这应该满足您的要求: 首先,这个钩子告诉WordPress哪个是插件中的单个CPT模板 从这个答案可以得到单_模板挂钩以及如何加载它 如果在插件的其他地方使用“plugin\u dir\u path(FILE),请定义一个常量来替换它,如下所示:
define('YOUR_PLUGIN_DIR_PATH', trailingslashit(plugin_dir_path( __FILE__ )) );
function load_archive_ads_template( $archive_template ) {
global $post;
if ( is_post_type_archive ( 'ads' ) ) {
$archive_template = YOUR_PLUGIN_DIR_PATH . 'templates/archive-ads.php';
}
return $archive_template;
}
add_filter( 'archive_template', 'load_archive_ads_template', 10, 1 ) ;
然后对于ads存档模板,“存档模板”挂钩,如下所示:
define('YOUR_PLUGIN_DIR_PATH', trailingslashit(plugin_dir_path( __FILE__ )) );
function load_archive_ads_template( $archive_template ) {
global $post;
if ( is_post_type_archive ( 'ads' ) ) {
$archive_template = YOUR_PLUGIN_DIR_PATH . 'templates/archive-ads.php';
}
return $archive_template;
}
add_filter( 'archive_template', 'load_archive_ads_template', 10, 1 ) ;
正式文件:
这是未经测试的,但应该有效,但是,请让我知道。是的,这需要一些调整。在单个页面和归档页面中,都应该说“ads”而不是“ad”,而不是“load\u movie\u template”应该是“load\u single\u ad\u template”。对于归档文件的命名,我认为最好使用归档广告而不是ads archive,但总而言之,您帮助我解决了我的问题。非常感谢。你的更新是对的,我没有注意到广告中的复数形式,这是你的问题,对不起,对于任何阅读的人来说,必须使用准确的自定义帖子类型slug,否则它将无法工作。您对归档模板的命名也更接近约定,因此比最初使用的命名更好。为找到答案的其他人编辑。