2012-06-15 4 views
0

У меня возникла проблема с этим скриптом, который должен загружать пользовательский шаблон при просмотре пользовательской страницы сообщения.custom post page template

Я установил команду эха, чтобы убедиться, что URL-адрес правильный, но я даже не повторяю URL-адрес.

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 для того, чтобы указать мне в правильном направлении с моей установкой на вопрос о прессе. я установил WP через SSH, так что я интересно, если я скачал ночную сборку или что-то подобное ..

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

im, создающий плагин, поэтому я не могу этого сделать. –

1

Вы все еще можете отфильтровать один шаблон, на самом деле. Он все еще существует на wp-includes/template.php.

Я не вижу ничего плохого в вашей функции. Вы уверены, что файл шаблона существует?

Edit:

Попробуйте это:

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

У меня нет шаблона.php в моей папке wp-includes. –

+0

Я загрузил wordpress, и теперь у меня есть template.php –