我正在努力this tutorial 在自定义帖子类型(插件中)上,作者演示了如何force the use of a dedicated template for the Custom Post Type. 提交人这样说:
代码(以下)搜索模板single-movie-reviews.php
在当前主题目录中。如果没有找到,那么它会查找模板的插件目录,我们将其作为插件的一部分提供。template\\u include挂钩用于更改默认行为并强制执行特定模板。
Step 1: Added this code to my plugin-name.php
file
add_filter( \'template_include\', \'include_reviews_template\', 1 );
function include_reviews_template(){
if ( get_post_type() == \'reviews\' ) {
if ( is_single() ) {
// checks if the file exists in the theme first,
// otherwise serve the file from the plugin
if ( $theme_file = locate_template( array( \'single-movie-reviews.php\' ) ) ) {
$template_path = $theme_file;
} else {
$template_path = plugin_dir_path( __FILE__ ) . \'/templates/single-movie-reviews.php\';
}
}
}
return $template_path;
}
Step 2: Create the single-{custom-post-type}.php file.
接下来,我创建了
single-movie-reviews.php
文件并将其添加到
\'/my-plugin/templates/\'
目录
作者补充了以下内容:
Note: 您需要创建一个新页面from the dashboard 使用新创建的模板。
The Problems
<当我访问使用自定义帖子类型创建的帖子时,页面模板不会显示在仪表板中
does show 使用插件中的页面模板的帖子。
However... 每隔一页(即页数
NOT 使用CPT)现在显示
a blank white screen (好像找不到合适的模板来使用)那么我做错了什么?
请告知
最合适的回答,由SO网友:Charles Clarkson 整理而成
更改此行:
function include_reviews_template(){
对此:
function include_reviews_template( $template_path ) {
何时
get_post_type() == \'reviews\'
如果为false,则返回未设置的变量(
$template_path
). 此更改应发送WordPress传递给函数的值。