2017-02-09 8 views
1

カスタムジョブタイプ名を取得できませんでした。シングルjobs.phpページをロードできませんでした。パーマリンクの問題。仕事のために単一のページテンプレートをロードするget_post_type()でカスタムポストタイプ名を取得できません

コードタイプ

function wwp_job_portal_single_page($original_template){ 
     //check post type to job portal single page 
     $type=get_post_types(); 
     if(get_query_var('post_type') !== 'jobs'){ 

      return ; 

     } 
     elseif(is_single('jobs')){ 
     //check if file exit of single job page template 
      if(file_exists(file_exists(get_stylesheet_directory(). '/single-jobs.php'))){ 

       return get_stylesheet_directory() . '/single-jobs.php'; 

      } 
      else{ 

       return plugin_dir_path(__FILE__) . 'templates/single-jobs.php'; 
      } 

     } 
     else{ 
      echo "<h1>jobs page loaded</h1>"; 
      return plugin_dir_path(__FILE__) . 'templates/single-jobs.php'; 

     } 
     return $original_template; 
    } 
    add_action('template_include','wwp_job_portal_single_page'); 

カスタムポストタイプの登録コード

function create_jobs_post_type(){ 

    // set up labels 
    $labels = array(
     'name' => 'Job', 
     'singular_name' => 'Job', 
     'add_new' => 'Post New Job', 
     'add_new_item' => 'Post New Job', 
     'edit_item' => 'Edit Job', 
     'new_item' => 'New Job', 
     'all_items' => 'All jobs', 
     'view_item' => 'View jobs', 
     'search_items' => 'Search Job', 
     'not_found' => 'No Job Found', 
     'not_found_in_trash' => 'No Job found in Trash', 
     'parent_item_colon' => '', 
     'menu_name' => 'Jobs', 
    ); 
    //register post type 
    register_post_type('jobs', array(
     'labels' => $labels, 
     'has_archive' => true, 
     'public' => true, 
     'supports' => array('title','thumbnail'), 
     'publicly_queryable' => true, 
     'exclude_from_search' => true, 
     'show_in_nav_menus' => true, 
     'show_ui'    => true, 
     'show_in_menu'  => true, 
     'show_in_admin_bar' => true, 
     'menu_position'  => 10, 
     'menu_icon'   => 'dashicons-id-alt', 
     'can_export'   => true, 
     'delete_with_user' => false, 
     'hierarchical'  => false, 
     'has_archive'   => true, 
     'query_var'   => true, 
     'capability_type'  => 'post', 
     'map_meta_cap'  => true, 
     // 'capabilities' => array(), 

     'rewrite'    => array( 
      'slug'   => 'jobs', 
      'with_front' => true, 
      'pages'   => true, 
      'feeds'   => false, 

     ), 
     ) 
    ); 
    $taxonomy_args = array( 
     'labels'     => array('name' => 'Job Category'), 
     'show_ui'     => true, 
     'hierarchical'    => true, 
     'rewrite' => array('slug' => 'jobs') 
    ); 
    register_taxonomy(
     'jobs_category', 
     'jobs', 
     $taxonomy_args 
    ); 
} 

//hook for theme setup 
add_action('init','create_jobs_post_type'); 
+0

ポストタイプと税金に同じ「スラッグ」を使用すると、問題が発生する可能性がありますので注意してください。それを変更し、改善が得られたかどうかを確認してください。 また、あなたのsingle-jobs.phpはどのように見えますか?アーカイブはどのようにその問題を探していますか? Whats the logic – ste

+0

税金のスラッグを変更しても、私のカスタムポストタイプ名のテンプレートのシングル - { - }。phpファイルを読み込めません。もう一度私の問題を説明してみましょう。自分のカスタムポストタイプを検出して、テンプレートインクルードフック内のシングル - { - } .phpページファイルをロードしたいのです。私のコードに示されているように。私の投稿登録コードをもう一度見てもらえますか?返信いただきありがとうございます。 – user2651865

答えて

0

あなただけのように、ポストのIDと同じ機能を試してみてくださいすることができを投稿します:

get_post_type(get_the_ID()) 

希望は

+0

誰が負の印をつけたのですが、なぜ彼/彼女がそれを与えたのかと言う勇気はありません:https://codex.wordpress.org/it:Riferimento_funzioni/get_post_type – Tristup

+0

私はあなたの答えをdownvoteしませんでした。 get_the_ID()は関数内では機能しませんが、ループ内にあれば(get_post_type()はパラメータなし)、このように動作します。 – Benoti

+0

私はあなたに言及していませんでした.... – Tristup

1

関数get_post_type()はループの外側で使用できますが、オプションの引数($post_id)を設定する必要があります。

コードでは、投稿IDを引数として設定する必要があります。

function wwp_job_portal_single_page($original_template){ 
    global $post; 
    //check post type to job portal single page 
    $type=get_post_types($post->ID); 
    ..... 

あなたの機能は、探している関連する投稿IDを見つけることができます。

+0

カスタム投稿タイプを検出できません。私は実際には、このフックをテンプレートフック内で使用してシングル - {} .phpファイルを読み込みますが、そうすることはできません。 – user2651865

+0

template_includeの代わりにredirect_templateを試してください – Benoti

関連する問題