0

カスタム投稿ページを表示するときにカスタムテンプレートをロードする必要があるこのスクリプトに問題があります。

URLが正しいことを確認するためにechoコマンドを配置しましたが、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" ) ;

助けてください

4

3 に答える 3

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

?>
于 2012-06-15T12:41:50.140 に答える
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" ) ;
于 2012-06-16T01:05:39.683 に答える
0

ついにやった…。

ワードプレスを再ダウンロードして、コードを以下に変更しました...

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としてのクラス:)

于 2012-06-18T10:05:15.637 に答える