2013-11-12 3 views
0

У меня есть сайт на WordPress 3.6.1 и я создал собственный пост типа для рецептов с кодом:WordPress архив шаблона для пользовательского почтового типа

add_action('init', 'register_cpt_my_recipes'); 

function register_cpt_my_recipes() { 
    $args = array(
     'hierarchical' => false, 
     'supports' => array('title', 'editor', 'custom-fields' ,'tag' , 'excerpt', 'thumbnail'), 
     'public' => true, 
     'show_ui' => true, 
     'show_in_menu' => true, 
     'menu_position' => 5, 
     'show_in_nav_menus' => false, 
     'publicly_queryable' => true, 
     'exclude_from_search' => false, 
     'has_archive' => true, 
     'query_var' => true, 
     'can_export' => true, 
     /* Not necessary but added as a solution */ 
     'rewrite'=> array('slug' => 'my_recipes', 'with_front' => true), 
     'capability_type' => 'post' 
    ); 
    register_post_type('my_recipes', $args); 
    /* Not necessary but added as a solution */ 
    flush_rewrite_rules(false); 
} 

Я создал архив-my_recipes.php файл пользовательского шаблона, но всякий раз, когда я перехожу к mysite/my_recipes /, я получаю код из archive.php со всеми моими сообщениями, а не только сообщениями, которые формируют мой пользовательский тип сообщения. Я пробовал таксономию-my_recipes.php, но также не работал.

Также single-my_recipes.php работает нормально. Сообщение моего типа сообщения появляется в основном цикле.

Я читал о предмете на сайте документации wordpress here и here Я также читал ответы на аналогичный вопрос, но пока нет рабочих решений.

Также попробовал решение here:

function namespace_add_custom_types($query) { 
    if(is_category() || is_tag() && empty($query->query_vars['suppress_filters'])) { 
    $query->set('post_type', array(
    'post', 'your-custom-post-type-here' 
     )); 
     return $query; 
    } 
} 
add_filter('pre_get_posts', 'namespace_add_custom_types'); 
+0

архивную копию файла и дать имя вашего файла Архив- {custompost имя типа} .php как архив-register_cpt_my_recipes.php –

+0

@ravi вы не читали вопрос, я сделал это, и его не работающий вопрос был почему. – newComer

ответ

0

Ok, я нашел его это часть причины проблема

add_action('pre_get_posts', 'add_my_post_types_to_query'); 

function add_my_post_types_to_query($query) { 
    if (!is_admin() && $query->is_main_query()) 
     $query->set('post_type', array('post', 'page', 'recipes')); 
    return $query; 
} 

, когда я удаляю его страницу архива, работаю нормально, однако теперь мне нужно отредактировать другие шаблоны, чтобы получить пользовательский пост, предоставив аргументы запроса.

если кто-нибудь спрашивает, как вы можете использовать это в шаблоне вместо цикла по умолчанию

<?php $loop = new WP_Query(array('post_type' => 'recipes', 'posts_per_page' => 100)); ?> 

     <?php while ($loop->have_posts()) : $loop->the_post(); ?> 



     <ul> 
      <li> 

       <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a> 

       <h4><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4> 

      </li> 
     </ul> 



      <?php endwhile; // end of the loop. ?> 
0

Я чувствую, ваша проблема подобна этой custom post types and template names

вам может понадобиться обновить настройки PermaLink

+0

Я делал это много раз со вчерашнего дня, включая перезапуск сервера, еще не решенный – newComer

+0

Я могу получить доступ к своим пользовательским сообщениям с помощью mysite/recipes/my_recipe, и я могу получить доступ к своему пользовательскому почтовому архиву с помощью mysite/recipes, но результат неправильный, и он не работает используйте мой собственный шаблон архива. – newComer

+0

все выглядит нормально, я предлагаю вам следовать шагам выше сообщения/ответа, использовать slug и очистить кеш. –

Смежные вопросы