Как изменить ABSPATH в WordPress?

#php #wordpress

#php #wordpress

Вопрос:

Я пытался создать фиктивный дубликат пользовательского сайта WP / WooCommerce на том же сервере.

Я успешно переместил файлы в поддомен, создал временную копию базы данных и обновил файл wp_config, но я ни за что на свете не могу понять, как установить значение ABSPATH для отражения поддомена вместо основного (не тестового) домена. Итак, теперь, когда вы входите на фиктивный сайт WP, он входит в панель управления WP ОСНОВНОГО сайта.

** Итак, мой вопрос в том, как мне изменить значение ABSPATH для фиктивного сайта и будет ли это также обновлять фиктивные URL-адреса, чтобы указывать на URL-адреса сайта?

Основной URL-адрес сайта ldtuttle.com и фиктивный сайт — это dev.tuttle.com .

Заранее спасибо за ваше время, Лиза

Комментарии:

1. Вам не нужно изменять ABSPATH . Вам нужно заменить URL-адреса основного сайта http://mainsite.com на фиктивный новый поддомен http://subdomain.dummy.com . Или вы можете жестко запрограммировать URL-адреса в wp-config.php файле, добавив define( 'WP_SITEURL', 'http://subdomain.dummy.com/wordpress' ); define( 'WP_HOME', 'http://subdomain.dummy.com/wordpress' ); for now.

Ответ №1:

В таблице базы данных ‘wp_options’ вам нужно изменить два значения: ‘siteurl’ и ‘home’.

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

Комментарии:

1. @RahilWazir по моему опыту, это так … в противном случае WordPress будет перенаправлять на сайт / wp-admin старого домена для каждой страницы, как описано в OP.

Ответ №2:

Вам нужно обновить не только ‘wp_options’

Также создайте отдельную базу данных для — «фиктивного дубликата» — скопируйте исходную базу данных там, а затем обновите эти таблицы базы данных:

 UPDATE wp_options SET option_value = REPLACE(option_value, 'ORIGINAL_URL', 'NEW_URL');
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'ORIGINAL_URL', 'NEW_URL');
UPDATE wp_posts SET guid = REPLACE(guid, 'ORIGINAL_URL', 'NEW_URL');
UPDATE wp_posts SET post_content = REPLACE(post_content, 'ORIGINAL_URL', 'NEW_URL');
  

Несколько хороших статей:

http://www.wpbeginner.com/wp-tutorials/how-to-create-staging-environment-for-a-wordpress-site/

И:

https://codex.wordpress.org/Moving_WordPress

Смотрите Заголовок: Перемещение каталогов на вашем существующем сервере

Комментарии:

1. «Как сломать вашу установку WordPress с помощью 4 простых запросов». Это не учитывает сериализованные данные, которые будут повреждены, если ваш новый домен не будет точно такой же длины, как ваш старый. Единственный надежный метод, который работает должным образом в текущих версиях PHP, — это поиск и замена wp-cli .

2. Приятный снисходительный и покровительственный грубый ответ #Walf. Не нужно, чтобы WordPress выполнял поиск и замену для нас … я думаю, мы справимся

Ответ №3:

Я просто хочу добавить одну вещь, связанную с комментарием @kreeverp: вы должны быть осторожны при замене значения GUID, как объясняется в Кодексе WordPress. Если вы переходите ОТ локальной разработки К развертыванию, тогда безопасно изменить их на URL развертывания. Но если вы переходите с одного URL-адреса на другой, оба из которых будут развернуты (например, переход с site.com чтобы site.org ) тогда вы НЕ хотите заменять значение GUID.

(Я бы оставил это в качестве комментария к @kreeverp, но я пока не могу этого сделать!)