2012-02-20 12 views
0

私は自分のカスタム投稿タイプを作成していますが、すべてうまくいきますが、どのように表示するのかという簡単な質問があります。Wordpress投稿タイプを作成する作業

私のfuctions.phpファイルに自分のカスタム投稿タイプがあり、single-speakers.phpファイルを作成しました。カスタムポストタイプのスピーカーページを、メインナビゲーションの[安全なスピーカー]タブに誘導するにはどうすればよいですか?

THIS IS MY SITE

This is the actual link to my custom post type page with my speakers on it

fuctions.php

add_action('init', 'create_my_post_types'); 

function create_my_post_types() { 
    register_post_type('speakers', 
     array(
      'labels' => array(
       'name' => __('Speakers'), 
       'singular_name' => __('Speakers') 
      ), 
      'public' => true, 
     ) 
    ); 
} 

シングルspeakers.php

<?php get_template_part('header', '2');  // Header #2 (header-2.php) ?> 

<?php query_posts('post_type=speakers'); ?> 
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?> 

      <div id="speakersBox" class="clearfix"><?php the_title('<h6>', '</h6>'); ?><br/><?php the_content(); ?></div> 
      <hr> 

    <?php endwhile; endif; ?> 


<?php get_template_part('footer', '2');  // Footer #2 (footer-2.php) ?> 

すべてのヘルプおよびまたはアドバイスは歓迎です!

答えて

0

single-speakers.phpシングルスピーカーポストタイプを表示するテンプレートがあるとします。投稿を確認してtemplate_redirectアクションを追加します。これをファイルfunctions.phpに入れてください。すなわち

add_action('template_redirect', 'redirect_to_speaker'); 
function redirect_to_speaker(){ 
    global $post; 
    if(is_single() && $post->post_type == 'speakers'){ 
     include (TEMPLATEPATH . '/single-speakers.php'); 
     exit; 
    } 
} 

template_includeというフィルタを使用できます。テンプレートについてのいくつかの非常に良い情報と、この記事を読んで、また

add_filter('template_include', 'my_speaker_template'); 
function my_speaker_template($template){ 
     global $post; 
     if(is_single() && $post->post_type == 'speakers'){ 
      $template = get_template_directory() . '/single-speakers.php'; 
     } 
     return $template; 
} 

:実際には、このいずれかを使用しhttp://xazure.net/2011/06/tips-snippets/wordpress/changing-wordpress-template-with-template_include/

+0

私は自分のsingle-speakers.phpファイルのコードを自分の質問に追加しました。あなたのコードを試しましたが、正しく閉じられていませんか?それは閉鎖のエラーがあると言っている、私はそれを特定の場所に置く必要がありますか? (これは、function.phpファイルのmy custom custom post typeアクションの上にあります)。 – kia4567

+0

申し訳ありませんが、あなたの 'functions.php'ファイルにこのコードを記述することを忘れてしまいました。そしてコードを編集しました。今すぐやってみて下さい。 –

+0

私はそれを加えましたが、私はそれが何をすべきかを十分に理解していません。あなたは私のためにこれについていくつかの光を当てることができますか? – kia4567

0

さて、よく私は道を考え出しました。私はsingle-speakers.phpファイルの情報を使って新しいテンプレートページを作成し(それをpage-speakers.phpと呼んでいました)、私のセーフティスピーカーページをその新しいページに向けました。それは素晴らしい作品です!

お手数をおかけしていただきありがとうございます。とにかく感謝しています。

関連する問題