2013-10-09 4 views
2

"Posts page"설정과 동일한 방식으로 게시물 목록을 생성 할 페이지를 선택할 수있는 Wordpress에서 사용자 정의 게시 유형 플러그인을 설정하려고합니다. 페이지의 URL에 액세스 할 때 페이지 내용 대신 사용자 정의 게시물 유형 아카이브 페이지를 생성하도록 설정합니다.Wordpress에서 "Posts Page"설정에 해당하는 사용자 정의 게시 유형

설정을 사용할 페이지를 선택할 수있는 옵션이 있으며 사용자 정의 게시물 유형에 대한 slug 재 작성 슬러그를 사용합니다. 페이지 콘텐츠 대신 아카이브를 표시하는 방법을 알 수 없습니다 .

답변

0

WordPress Template Hierarchy을 기반으로 Foo 유형의 맞춤 게시물을 사용한다고 가정하면 보관 코드를 archive-foo.php에 넣으려고합니다.

+0

특정 보관 템플릿을 사용하여 표시하려고하는 것이 아니며 기본값은 문제가 없습니다. 워드 프레스 "posts pages"설정을 설정하는 것과 같은 기능으로, 플러그인 옵션 페이지에서 페이지가 선택되면 페이지의 URL로 이동하여 커스텀 포스트 유형의 아카이브를 생성하는 것과 같은 방식으로 워드 프레스가 일반용으로 수행합니다 게시물 및 "게시물 페이지"로 선택한 페이지 –

+0

명확하게하기 위해 이미 플러그인 옵션에서 맞춤 보관 URL을 설정할 수 있습니다. 해당 URL로 이동하면 하나의 맞춤 게시물의 콘텐츠가 표시됩니다. 사용자 정의 게시 유형 선언에서'has_archive'를 true로 설정 했습니까? – acobster

0

실용적인 솔루션이 있지만 더 나은 해결책이 있지만 최상위 페이지의 경우이 방법이 유용 할 것입니다. 기본적으로 페이지의 슬러그가 변경되었는지 확인하고 다시 작성 규칙이 있으면 플러시합니다.

add_action('init', 'faqmgr_create_post_type'); 
function faqmgr_create_post_type() { 
    $options=get_option('faqmgr_options', array('faq_page'=>0, 'faq_slug'=>'faq')); 
    $updated=false; 
    $tpost=get_post($options['faq_page'], OBJECT); 
    if(is_null($tpost)){ 
     $options=array('faq_page'=>0, 'faq_slug'=>'faq'); 
    $updated=true; 
     update_option('faqmgr_options', $options); 
    }else{ 
     if($options['faq_slug']!=$tpost->post_name){ 
      $options['faq_slug']=$tpost->post_name; 
      $updated=true; 
     } 
    } 
    register_post_type('faq', 
     array(
      'labels' => array(
       'name' => __('FAQs'), 
       'singular_name' => __('FAQ'), 
       'add_new_item' => __('Add FAQ'), 
       'edit_item' => __('Edit FAQ'), 
       'new_item' => __('New FAQ'), 
       'view_item' => __('View FAQ'), 
       'search_items' => __('Search FAQs') 
      ), 
     'public' => true, 
     'exclude_from_search'=>true, 
     'has_archive' => true, 
     'rewrite' => array(
      'slug' => $options['faq_slug'], 
      'with_front' => false 
     ), 
     'supports' => array(
      'title', 
      'editor', 
      'thumbnail' 
     ) 
     ) 
    ); 

    if($updated=true;){ 
     flush_rewrite_rules(false); 
    } 

} 
관련 문제