2012-06-15 53 views
0

我遇到了这个脚本的问题,它应该在查看自定义发布页面时加载自定义模板。自定义发布页面模板

我已经把一个回声命令,以确保该网址是正确的,但我甚至没有回应该网址。

function da_custom_post_type_template($single_template) { 
    global $post; 

    if ($post->post_type == 'include') { 

      $single_template = PLUGIN_PATH. 'template/custom_template.php'; 
    } 
    echo $single_template; 
    return $single_template; 
} 
add_filter("single_template", "da_custom_post_type_template") ; 

请帮

+0

试类呼应“测试”;并检查它是否回显或不...我们将知道它是在函数里面 –

+0

不,它不会看到在函数内部回显..... :( –

+0

@DavidAllen如何将$ single_template传递给你的方法? ?;) – swapnesh

回答

0

最后做到了....

我重新下载WordPress和我的代码更改为下面...

gobal $ post似乎没有设置任何东西,所以我用$ wp_query代替。感谢CroiOS指出了这一点。

也感谢CMF指出我正确的方向与我的安装在文字新闻问题上。我通过SSH安装WP,所以我想知道如果我下载了一个每晚构建或类似的东西..

function da_custom_post_type_template($template) { 
    global $wp_query; 
    if ($wp_query->post->post_type == 'include') { 
     $template = PLUGIN_PATH . '/template/custom_template.php'; 
    } 
    return $template ; 
} 
add_filter("archive_template", "da_custom_post_type_template") ; 

而且由于某种原因它作为archive_template :)

+0

再次感谢我真的不想我会想出这件事... –

1

将这个进入的single.php:

<?php 
     global $wp_query; 

     $post = $wp_query->post; 
     $post_type = get_query_var('post_type'); 

     if($post_type == 'include'){ 
     include(TEMPLATEPATH.'/my_post_template.php'); 
     }else{ 
     include(TEMPLATEPATH.'/default_post_template.php'); 
     }#end else 

?> 
+0

即时制作一个插件,所以我不能做到这一点 –

1

,您仍然可以过滤一个模板,其实。它仍然存在于wp-includes/template.php

我看不出你的功能没有错。你确定模板文件存在吗?

编辑:

试试这个:

function da_custom_post_type_template($template) { 
    global $post; 

    if ($post->post_type == 'include') { 
     $template = dirnamr(__FILE__) . '/template/custom_template.php'; 
    } 
    return locate_template($template); 
} 
add_filter("single_template", "da_custom_post_type_template") ; 
+0

我没有在我的wp-includes文件夹中的template.php –

+0

我已经下载了wordpress,现在有一个template.php –