Поддержка Проблемы и решения не работает page.php

  • Решено Flector

    (@flector)


    не подскажите, по какой причине может не срабатывать шаблон page.php для страниц? все время используется index.php.

    вроде по иерархии шаблонов page.php всегда идет выше index.php, а вот что-то не получается.

Просмотр 14 ответов — с 1 по 14 (всего 14)
  • Модератор Yuri

    (@yube)

    Ну, барин, ты задачи ставишь 🙂 Я ж так понимаю, что это не тот случай, когда «выводится не страница». Всё по-взрослому, да? Могу предположить наличие русской буквы или какого-то невидимого символа в имени файла. Хотя обычно такая беда случается с файлами и переменным на букву «с».

    Автор Flector

    (@flector)

    да не, я из дефолтных тем пробовал и page.php и content-page.php копировать — все равно не хотят 🙁

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

    Модератор Yuri

    (@yube)

    Ну тогда только вскрытие. В смысле вывод всего подряд внутри функций get_page_template(), locate_template() и т.д. и т.п.

    Автор Flector

    (@flector)

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

    Автор Flector

    (@flector)

    выяснил, что это из-за кода плагина «Custom Post Type Generator».

    вот что тут не так то?

    
    /**
    * Register Custom Post Types and Custom taxonomies.
    *
    * from Custom Post Type Generator Plugins.
    */
    
    add_action( 'init', 'cptg_custom_post_types' );
    function cptg_custom_post_types()
    {
    	$labels = array(
    		'name' => 'Фильмы',
    		'singular_name' => 'Фильмы',
    		'menu_name' => 'Фильмы',
    		'name_admin_bar' => 'Фильмы',
    		'all_items' => 'Все фильмы',
    		'add_new' => 'Добавить новый',
    		'add_new_item' => 'Добавить фильм',
    		'edit_item' => 'Редактировать фильм',
    		'new_item' => 'Новый фильм',
    		'view_item' => 'Просмотреть фильм',
    		'search_items' => 'Поиск фильмов',
    		'not_found' =>  'Фильмов не найдено',
    		'not_found_in_trash' => 'Фильмов в корзине не найдено',
    		'parent_item_colon' => 'Parent Page',
    	);
    	$args = array(
    		'labels' => $labels,
    		'description' => 'фильм или сериал',
    		'public' => true,
    		'exclude_from_search' => false,
    		'publicly_queryable' => true,
    		'show_ui' => true,
    		'show_in_nav_menus' => true,
    		'show_in_menu' => true,
    		'show_in_admin_bar' => true,
    		'has_archive' => true,
    		'menu_position' => null,
    		'menu_icon' => 'dashicons-video-alt3',
    		'hierarchical' => false,
    		'rewrite' => array( 'slug' => 'movie','with_front' => true,'feeds' => true,'pages' => true ),
    		'query_var' => true,
    		'can_export' => true,
    		'supports' => array( 'title','author','custom-fields','comments','revisions' ),
    	);
    	register_post_type( 'movie', $args );
    	$labels = array(
    		'name' => 'Страны',
    		'singular_name' => 'Страны',
    		'menu_name' => 'Страны',
    		'all_items' => 'Все страны',
    		'edit_item' => 'Изменить страну',
    		'view_item' => 'Просмотреть страну',
    		'update_item' => 'Обновить страну',
    		'add_new_item' => 'Добавить новую страну',
    		'new_item_name' => 'Название новой страны',
    		'parent_item' => 'Родительская рубрика',
    		'parent_item_colon' =>  'Родительская рубрика',
    		'search_items' => 'Поиск стран',
    		'popular_items' => 'Популярные страны',
    		'separate_items_with_commas' => 'Страны разделяются запятыми',
    		'add_or_remove_items' => 'Добавить или удалить метки',
    		'choose_from_most_used' => 'Выбрать из часто используемых стран',
    		'not_found' => 'Стран не найдено.',
    	);
    	$args = array(
    		'labels' => $labels,
    		'public' => true,
    		'show_ui' => true,
    		'show_in_nav_menus' => true,
    		'show_tagcloud' => true,
    		'meta_box_cb' => null,
    		'show_admin_column' => false,
    		'hierarchical' => false,
    		'query_var' => true,
    		'rewrite' => array( 'slug' => 'country','with_front' => true,'hierarchical' => false, ),
    		'sort' => false,
    	);
    	register_taxonomy( 'country', array( 'movie' ) , $args );
    	$labels = array(
    		'name' => 'Год выпуска',
    		'singular_name' => 'Год выпуска',
    		'menu_name' => 'Год выпуска',
    		'all_items' => 'Все года',
    		'edit_item' => 'Изменить год',
    		'view_item' => 'Просмотреть год',
    		'update_item' => 'Обновить год',
    		'add_new_item' => 'Добавить новый год',
    		'new_item_name' => 'Название нового года',
    		'parent_item' => 'Родительская рубрика',
    		'parent_item_colon' =>  'Родительская рубрика',
    		'search_items' => 'Поиск годов',
    		'popular_items' => 'Популярные года',
    		'separate_items_with_commas' => 'Года разделяются запятыми',
    		'add_or_remove_items' => 'Добавить или удалить года',
    		'choose_from_most_used' => 'Выбрать из часто используемых годов',
    		'not_found' => 'Годов не найдено.',
    	);
    	$args = array(
    		'labels' => $labels,
    		'public' => true,
    		'show_ui' => true,
    		'show_in_nav_menus' => true,
    		'show_tagcloud' => true,
    		'meta_box_cb' => null,
    		'show_admin_column' => false,
    		'hierarchical' => false,
    		'query_var' => true,
    		'rewrite' => array( 'slug' => 'year','with_front' => true,'hierarchical' => false, ),
    		'sort' => false,
    	);
    	register_taxonomy( 'year', array( 'movie' ) , $args );
    	$labels = array(
    		'name' => 'Жанры',
    		'singular_name' => 'Жанры',
    		'menu_name' => 'Жанры',
    		'all_items' => 'Все жанры',
    		'edit_item' => 'Изменить жанр',
    		'view_item' => 'Просмотреть жанр',
    		'update_item' => 'Обновить жанр',
    		'add_new_item' => 'Добавить новый жанр',
    		'new_item_name' => 'Название нового жанра',
    		'parent_item' => 'Родительская рубрика',
    		'parent_item_colon' =>  'Родительская рубрика',
    		'search_items' => 'Поиск жанров',
    		'popular_items' => 'Популярные жанры',
    		'separate_items_with_commas' => 'Жанры разделяются запятыми',
    		'add_or_remove_items' => 'Добавить или удалить жанры',
    		'choose_from_most_used' => 'Выбрать из часто используемых жанров',
    		'not_found' => 'Жанров не найдено.',
    	);
    	$args = array(
    		'labels' => $labels,
    		'public' => true,
    		'show_ui' => true,
    		'show_in_nav_menus' => true,
    		'show_tagcloud' => true,
    		'meta_box_cb' => null,
    		'show_admin_column' => false,
    		'hierarchical' => false,
    		'query_var' => true,
    		'rewrite' => array( 'slug' => 'genre','with_front' => true,'hierarchical' => false, ),
    		'sort' => false,
    	);
    	register_taxonomy( 'genre', array( 'movie' ) , $args );
    }
    
    add_action( 'after_switch_theme', 'cptg_rewrite_flush' );
    function cptg_rewrite_flush()
    {
    	flush_rewrite_rules();
    }
    

    все работает — кроме страниц. бесконечные переключения тем и обновления постоянных ссылок не помогают.

    Мне почему то кажется что дело в этом параметре

    'rewrite' => array( ...., 'hierarchical' => false, ),

    но могу ошибаться, как решите проблему отпишитесь пожалуйста.

    • Ответ изменён 7 лет назад пользователем Riskful.
    Автор Flector

    (@flector)

    да не, что-то не выходит.

    Заинтриговал, сейчас локальный веб сервер включу попробую.

    Погоди, так ты точно страницы выводишь, а не страницу с кастомной записью?

    • Ответ изменён 7 лет назад пользователем Riskful.
    Автор Flector

    (@flector)

    страница с кастомной записью тут выводится через single-movie.php, в котором подгружается content-movie.php, поэтому я абсолютно точно уверен.

    https://i.paste.pics/d9d05bb40a35c5e7432afe902b2c4244.png

    Вставил твой код в functions.php в стандартную twentyseventeen и все работает. Мне кажется у тебя шаблон какой то создан который перебивает page.php
    Если хочешь можем попытаться решить проблему вместе дай свой скайп или другой мессенджер чтобы тут не устраивать чат.

    Автор Flector

    (@flector)

    спасибо Riskful за то, что сразу нашел то, чего я бы в жизни не заметил. ярлык таксономии, оказывается, не может быть «year» — видимо, зарезервированное слово. почему при этом не работали только страницы — для меня секрет.

    оказывается, не может быть «year» — видимо, зарезервированное слово

    https://codex.wordpress.org/Reserved_Terms
    Хотя слаг.. Мб в данном случае имелся конфликт с существующими.

    Автор Flector

    (@flector)

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

Просмотр 14 ответов — с 1 по 14 (всего 14)
  • Тема «не работает page.php» закрыта для новых ответов.