Поддержка Проблемы и решения Permalinks & custom post types

  • Решено bigflame_sp

    (@bigflame_sp)


    Создал новый тип:

    function my_post_type_portfolio() {
    	register_post_type( 'portfolio',
                    array(
    				'label' => __('Photography'),
    				'public' => true,
    				'show_ui' => true,
    				'show_in_nav_menus' => true,
    				/* 'rewrite' => true,    */
                                    'rewrite' => array('slug' => 'portfolio', 'with_front' => false),
    				'hierarchical' => true,
    				'menu_position' => 5,
    				'supports' => array(
    						'title',
    						'editor',
    						'thumbnail',
    						'excerpt',
    						'custom-fields',
    						'revisions')
    					)
    				);
    	register_taxonomy('portfoliocat', 'portfolio', array('hierarchical' => true, 'label' => 'Photography Categories', 'singular_name' => 'Category'));
    }

    ЧПУ не работали никак.

    Добавил

    flush_rewrite_rules();

    ЧПУ зарабоали в категориях и подкатегориях(т.е. /portfolio/; /portfolio/portrait/) и т.д. Но ссылка на сам пост всеравно уходит в 404.

Просмотр 1 ответа (всего 1)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    flush_rewrite_rules();

    Достаточно вызвать функцию только один раз. Или просто зайти на страницу «Параметры» → «Постоянные ссылки» (даже не нажимая кнопку). Это ресурсоёмкая операция, выполнять её каждый раз при загрузке любой страницы сайта не нужно.

    Но ссылка на сам пост всеравно уходит в 404.

    На чистой установке ваш пример работает:

    1. Скопировал код в functions.php.
    2. Зашёл на страницу «Параметры» → «Постоянные ссылки».
    3. Открыл «Photography» → «Добавить новую», создал запись «Photo 1».
    4. Получилась ссылка /portfolio/photo-1/, которая успешно открылась.

    Если в вашем случае что-то конфликтует, стоит выполнить пункты 4—6.

Просмотр 1 ответа (всего 1)
  • Тема «Permalinks & custom post types» закрыта для новых ответов.