Вопрос или проблема
Функция предварительного просмотра работает нормально, когда посты еще находятся в черновике. URL выглядит так:
http://exemple.domain.com/blog/?p=12&preview=true
Затем, когда я публикую свои посты, допустим, я хочу что-то изменить и просмотреть, URL выглядит так: http://exemple.domain.com/blog/my-article-title/?preview=true&preview_id=12&preview_nonce=514e88946a&post_format=standard
Проблема в том, что он не отражает никаких изменений…
Я использую WordPress 3.9.2 с темой Twenty Fourteen без каких-либо плагинов
ИЗМЕНИТЬ
Я изменил постоянную ссылку на стандартную, и это решило проблему. Но мне нужно, чтобы это работало с красивым URL…
Спасибо за вашу помощь
Вам нужно определить постоянную ссылку %postname% и убедиться, что .htaccess изменен.
Если доступ к вашему .htaccess заблокирован, вы можете сделать это вручную.
# НАЧАЛО WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# КОНЕЦ WordPress
Больше информации вы можете найти в Codex, просто найдите “Использование “Pretty” permalinks”.
Это, вероятно, не лучший способ, поскольку он не будет действовать после обновлений WordPress (но, надеемся, обновление это исправит).
В wp-admin/includes/post.php
отредактируйте функцию post_preview()
, сразу перед возвратом apply_filters( 'preview_post_link', $url );
вставьте следующий код:
//ОРИГИНАЛ
//$url = add_query_arg( $query_args, get_permalink( $post->ID, true ) );
//ИЗМЕНЕНИЯ, чтобы просмотр работал даже с postname в URL
$query_args['p'] = $post->ID;
$url = add_query_arg( $query_args, get_permalink( $post->ID, true ) );
$url = str_replace('%postname%/', '', $url);
//КОНЕЦ ИЗМЕНЕНИЙ
Но все же, есть ли способ сделать это лучше?
Ответ или решение
Вопрос о невозможности предварительного просмотра изменений, внесенных в публикацию после ее публикации на платформе WordPress, заслуживает тщательного рассмотрения. Рассмотрим ситуацию подробнее и предложим решения, которые помогут справиться с данной проблемой.
Фон проблемы
У вас работает WordPress версии 3.9.2 с темой Twenty Fourteen без использования плагинов. Первоначальный доступ к предпросмотру постов осуществляется через URL-адрес с добавленным параметром preview=true
. Однако после публикации, предпросмотр изменений не отображается корректно при использовании "красивых" URL.
Возможные причины
-
Проблемы с .htaccess: Если файл .htaccess настроен неправильно, это может привести к некорректной обработке "красивых" URL. Необходимо убедиться, что файл конфигурирован правильно для поддержки пермалинков.
-
Необходимость правки функции предпросмотра поста: Стандартная функция может не учитывать определенные нюансы работы с пермалинками.
Решения
1. Настройка .htaccess
Произведите проверку и, при необходимости, скорректируйте файл .htaccess следующим образом:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Эта конфигурация позволит настроить пермалинки для работы с модулем mod_rewrite
.
2. Изменения в wp-admin/includes/post.php
Для исправления функции предпросмотра поста внесите следующие изменения в файл wp-admin/includes/post.php
:
// ИЗМЕНЕНИЯ для корректного предпросмотра
$query_args['p'] = $post->ID;
$url = add_query_arg( $query_args, get_permalink( $post->ID, true ) );
$url = str_replace('%postname%/', '', $url);
// КОНЕЦ ИЗМЕНЕНИЙ
Этот код добавляет параметр ‘p’ с идентификатором поста и устраняет из URL %postname%
, что может способствовать исправлению проблем предпросмотра.
SEO Оптимизация и лучшие практики
-
Консистентные пермалинки: Убедитесь, что структура пермалинков остается последовательной. Исправления в .htaccess и коде могут помочь сохранить структуру "красивых" URL без ошибок.
-
Анализ производительности: Регулярно проводите аудит производительности сайта и проверку ошибок, чтобы быстро выявлять и устранять подобные проблемы.
-
Обновление WordPress: Рассмотрите возможность обновления WordPress до более поздней версии, так как многие проблемы могли быть исправлены разработчиками.
Разобравшись с указанными аспектами, вы сможете более эффективно управлять процессом предпросмотра изменений на своём сайте. Рассмотренные подходы помогут обеспечить стабильную работу WordPress, минимизировав возникновение проблем в будущем.