Intereting Posts
WordPress запрещает изменение страницы на определенную постоянную ссылку Отправить электронное письмо, содержащее HTML-текст и текстовую часть Как добавить новую ссылку после редактирования | Быстрое редактирование | Корзина | Просмотр в разделе быстрого редактирования как работает wordpress smtp? моя электронная почта не работает Как удалить addthis из моего шаблона по умолчанию Как узнать, является ли это таксономией ребенка? Невозможно изменить информацию заголовка. При попытке входа в систему Проверка отображения определенного архива даты Как перейти к созданию файла css с переменными из параметров темы Сброс menu_order до 0 для сообщений в PHPmyAdmin? Локализация скриптов не работает пользователь добавил (кто добавил этого пользователя) Отображение страниц на странице категории приводит к страницам примеров 500 после wp_insert_post Локализовать заголовок раздела настроек

WordPress не соблюдает иерархию шаблонов (выбирает index.php вместо single.php или page.php)

У меня возникла странная ошибка при разработке настраиваемой темы.

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

Я попытался изменить настройки для дома и дома на дому в настройках «чтения». Я попытался обновить структуру постоянных ссылок (обычно я использую% postname%). Я также попытался вернуться к стандартной структуре /? = Post_id. В этом случае отлично работает … но ничего с% postname% не будет работать.

Я отключил плагины, но ничего не меняется. Он просто отказывается работать с довольно постоянными отношениями. На самом деле permalinks отлично работают для моего настраиваемого типа сообщений и не будут вызывать 404 ошибки. Но для каждой отдельной страницы и поста будет пытаться получить index.php, а не single.php и page.php (или последующие шаблоны для страниц). Я проверил конфигурацию для своего пользовательского типа сообщений … но нет возможных конфликтов со страницами (переписывание URL-адресов полностью отличается от любой стандартной строки wordpress).

Я проверил мой .htaccess, который довольно стандартный, как и в большинстве моих установок:

<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> 

ОБНОВИТЬ

Я решил выбросить все, будучи тестовым сайтом разработки, и начал работу над чистой установкой. Сбросил всю БД, разбил файлы установки. Очистить установку и включить wp_debug = true. Сначала я заметил ошибку на панели инструментов:

 ERROR: The themes directory is either empty or doesn't exist. Please check your installation. 

Я думаю, это связано с тем, что я переименовал папку wp-content в "content"

Я сделал это раньше на других установках с этим кодом (конечно, «mydomain» – это мой фактический домен в моем wpconfig …)

 define('WP_CONTENT_FOLDERNAME', 'content' ); define('WP_CONTENT_DIR', ABSPATH . WP_CONTENT_FOLDERNAME ); define('WP_CONTENT_URL', 'http://mydomain.com/' . WP_CONTENT_FOLDERNAME ); define('WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins' ); define('WP_PLUGIN_URL', WP_CONTENT_URL . '/plugins' ); 

После двойной проверки и перезагрузки страницы каким-то образом строка ошибки исчезла. Я смог правильно установить тему (поэтому WordPress должен был знать о своей папке местоположения …)

Тем не менее проблема с постоянными URL-адресами сохраняется (хочет получить index.php вместо шаблона page.php для страниц или single.php для сообщений). Это сводит меня с ума, поскольку это чистая новая установка.

ОБНОВЛЕНИЕ 2

теперь я тестирую TwentyEleven / Ten, и он все равно бросает ту же ошибку … поэтому я должен исключать плагины и свою собственную тему … это, вероятно, связано с моей конфигурацией сервера, htaccess или wpconfig, вероятно … но я действительно интересно … потому что это работает на том же сервере, где у меня есть полдюжины сайтов WordPress, настроенных аналогичным образом

ОБНОВЛЕНИЕ 3

после изменения и обновления файла wp-config.php несколько раз я получал его время от времени … но по какой-то причине он продолжает ломаться снова … отдельные сообщения в блогах и страницы перенаправляются на index.php (домашний блог) или на страницу шаблон, содержащий дом в блоге (если он установлен в настройках «чтения» из WordPress admin). Пользовательские типы сообщений, архивы и страницы форума bbpress (отдельные сообщения и архивы), таксономии … все они работают нормально. Это просто страницы и сообщения. Я дважды проверял конфигурацию php и переменные сервера, все выглядит нормально

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

в моей настройке у меня были таксономии с плагинами; у одного из них был установлен переписываемый слизень на «год» – ну, оказывается, это конфликты, вероятно, с архивами, основанными на дате (?), и заставил мои сообщения и страницы не загружаться, а перенаправить пользователя на дом в блоге – очевидно, выпуск в иерархии шаблонов WordPress; Я еще не исследовал

Я быстро не поймал ошибку, потому что неправильно отключил постоянные ссылки при деактивации плагинов – также по какой-то причине ошибка появилась случайным образом (иногда мои постоянные ссылки DID работают, несмотря на то, что переписывание таксономии все еще установлено)

Я закончил тем, что переименовал слизень в «период», затем удалил .htaccess, воссоздал его и создал / снял постоянные ссылки с страницы permalinks WordPress

который, кажется, исправил его раз и навсегда

поэтому … если вы оказались в подобной ситуации, проверьте чек, проверьте все, что каким-либо образом изменило структуру permalink, даже пользовательские типы сообщений и таксономии, подумайте о том, что вы используете, и если это может конфликтовать с чем-то иначе даже не очевидно

ура

Прежде всего, включите WP_DEBUG в wp-config.php .

Возможно, вы меняете запрос по умолчанию. Вы запускаете query_posts где-то? Взгляните на глобальный объект $wp_query . Если это так, вы можете попробовать WP_Query класс WP_Query или запустить wp_reset_query() .

Я думаю, что ваши настройки в WP-config все еще могут быть неправильными – может быть, ваш ABSPATH возвращает неправильное значение.

Строки, которые вам нужно проверить и изменить, — — (я взял это с помощью скелета Mark Jaquith локального WordPress)

 // Custom Content Directory define( 'WP_CONTENT_DIR', dirname( __FILE__ ) . '/content' ); define( 'WP_CONTENT_URL', 'http://' . $_SERVER['HTTP_HOST'] . '/content' ); 

Я столкнулся с той же проблемой и просто решил проблему, потратив около часа на выяснение проблемы.

Поэтому, если ваши страницы CPT (персонализированный тип сообщения) используют индекс index.php а не шаблон single-post_type, убедитесь, что вы неправильно используете query_posts . Для меня оказалось, что я забыл вызвать wp_reset_query на одной из страниц боковой панели после использования query_posts .

Просто просмотрите все свои страницы и Ctrl + F для query_posts и вручную проверьте, что каждый из вызовов query_posts закрывается wp_reset_query после этого.

У меня была родительская страница с slug «valentines-day», и этого было достаточно, чтобы заставить мою страницу использовать single.php (post template) неуместно! Очень похожая проблема с использованием «года» в слизе. Любые слова типа даты, такие как «день» и «год» в слизе, явно мешают автоматическому выбору шаблона.

Эта функция может использоваться, чтобы заставить любую страницу / URL использовать любой шаблон – очень полезно для исправления нечетных случаев, подобных этому. https://codex.wordpress.org/Plugin_API/Filter_Reference/template_include