2015-10-06 4 views
2

У меня есть пользовательский тип сообщения для wordpress.Пользовательский тип сообщения - архив

http://localhost/wordpress/photos/ 
http://localhost/wordpress/photos/my-photo 

Зачем этот URL-адрес возврату 404 не найден?

Как я могу создать файл архива для этого? как:
архив-photos.php (у меня есть это в каталоге, но ...)

function register_gallery(){ 
    register_post_type('photos', array(
     'public'   => true, 
     'menu_position'  => 10, 
     'menu_icon'  => 'dashicons-format-gallery', 
     'supports'  => array('title', 'editor', 'thumbnail'), 
     'has_archive'  => true, 

    )); 
} 

add_action('init','register_gallery'); 
+0

Я хотел бы предложить, взять справку с woocommerce, продукты являются пользовательскими сообщениями. Я сделал это для пользовательских типов продуктов. –

+1

Я не использую плагин! –

+1

Как установить постоянные ссылки в настройках> Чтение? – vard

ответ

1

Вы должны использовать,

//Need to call when custom post type is being used 
flush_rewrite_rules(); 

также попробовать, Настройки-> Permalinks сохранить все настройки.

подробнее визит, https://codex.wordpress.org/Function_Reference/register_post_type

+0

Посещение страницы постоянных ссылок совпадает с использованием 'flush_rewrite_rules()' – vard

+0

спасибо, я изменил константы –

+0

@JayDeepNimavat Почему? Захват 'init' отлично подходит для типа записи в регистре. Из [WP Codex] (https://codex.wordpress.org/Function_Reference/register_post_type): «register_post_type должен быть вызван только посредством действия« init »" – vard

0

я нашел другое решение, это может быть сделано на 404 странице при навигации по архивам на таможенный пост типа (КПП):

/** 
* My cpt is storytitle and slug for cpt is story-title 
* 
**/ 
function generate_cpt_rewrite_rules($wp_rewrite) { 

$event_rules = array(
'story-title/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/?$' => 'index.php?post_type=storyTitle&year=$matches[1]&monthnum=$matches[2]&day=$matches[3]', 
'story-title/([0-9]{4})/([0-9]{1,2})/?$' => 'index.php?post_type=storyTitle&year=$matches[1]&monthnum=$matches[2]', 
'story-title/([0-9]{4})/?$' => 'index.php?post_type=storyTitle&year=$matches[1]' 
); 

$wp_rewrite->rules = $event_rules + $wp_rewrite->rules; 
} 
add_filter('generate_rewrite_rules', 'generate_cpt_rewrite_rules'); 
Смежные вопросы