|
Замена ссылок на блоге Word Press в "один клик"
|
|
11.05.2015, 20:07
|
|
#21
|
Регистрация: 27.01.2015
Сообщений: 61
|
Это значит, что у вас эта ссылка, повторялась два раза...
Найти такое-то, и заменить таким-то... Вот и нашло два совпадения, и заменило соответственно...
|
|
|
11.05.2015, 20:11
|
|
#22
|
Регистрация: 02.09.2014
Сообщений: 807
|
а как отчет потом по каждому запросу посмотреть?
я например тыщу замен сделал, и хочу узнать по каждому сколько нашлось, а у меня пишет всегда 2 строки затронуто (видимо это отчет с последней замены)
|
|
|
11.05.2015, 20:18
|
|
#23
|
Регистрация: 27.01.2015
Сообщений: 61
|
А зачем отчет смотреть?
Лучше сделай экспорт базы данных, а там уже в блокноте посмотришь (найдешь), заменило или нет такие-то ссылки.
Если все правильно сделал, то замена произойдет обязательно.
А если ты 1000 запросов вбил сразу, и сообщило, что затронуто только две строки,
значит ты что-то не правильно сделал...
|
|
|
11.05.2015, 20:49
|
|
#24
|
Регистрация: 02.09.2014
Сообщений: 807
|
в том то и дело, что находит старые ссылки почему - то, но если найти этот пост в админке, то ссылка там новая стоит..
а если к примеру экспортировать не всю базу, а только wp-posts (как я понимаю из запроса предложенного в примере, мы именно в нем делаем замену), то там старых ссылок нету.
поэтому вопрос, не навредит ли это сайту как - нибудь? (то что в базе и старые и новые ссылки), может надо делать sql не только в wp-posts а во всей базе?
|
|
|
11.05.2015, 20:52
|
|
#25
|
Регистрация: 02.09.2014
Сообщений: 807
|
Сообщение от rasadan
А если ты 1000 запросов вбил сразу, и сообщило, что
значит ты что-то не правильно сделал...
| а мне всегда пишет, что затронуто только две строки, хотя такого быть не может, т.к. запрос шел около минуты, и на сайте много уже ссылок проверил, все заменились, видимо "затронуто 2 строки" это отчет только с последнего запроса, а не со всей тысячи
|
|
|
11.05.2015, 21:08
|
|
#26
|
Регистрация: 27.01.2015
Сообщений: 61
|
Ссылки в базе на фо, если ты только в постах конечно их вставлял, храняться в теле, то есть wp-posts (это в вордпресе). Если ты это указываешь в запросе SQL значит только там произойдет замена.
|
|
|
12.05.2015, 04:58
|
|
#27
|
Регистрация: 15.06.2012
Сообщений: 475
|
Сообщение от AlexanderSh88
может надо делать sql не только в wp-posts а во всей базе
| ссылки только в теле поста, в других таблицах их не будет. Если проводить массовую замену ссылок, то будут выводится несколько последних результатов, а не все произведенные замены.
При желании можно удалить скопившиеся ревизии и черновики постов, очистить корзину следующими запросами:
DELETE FROM wp_posts WHERE post_type ='revision';
DELETE FROM wp_posts WHERE post_type='draft';
DELETE FROM wp_posts WHERE post_status = 'trash';
DELETE FROM wp_posts WHERE post_status = 'auto-draft';
и отключить автосохранение черновиков и ревизий постов в wp-config
Не забываем делать бекап
|
|
|
12.05.2015, 05:11
|
|
#28
|
Регистрация: 02.09.2014
Сообщений: 807
|
290nps, а почему ссылки старые остаются в базе?... если всю базу экспортировать, открыть тхт файлом, там они есть, но если в wp-posts, те которые я создавал (с цитатою, тегами <a href .......... ) то, в базе обычные ссылки ,без тегов, вот например кусок из базы:
`wp_postmeta`--INSERT INTO `wp_postmeta` (`meta_id`, `post_id`, `meta_key`, `meta_value`) VALUES(13118, 6066, 'enclosure', 'старая ссылка\n0\nvideo/avi\n'),(254, 16, _edit_last', '1'
|
|
|
12.05.2015, 05:32
|
|
#29
|
Регистрация: 27.01.2015
Сообщений: 61
|
Не знаю, что там у тебя получается... но лучше всего сделать так:
Берешь тхт файл 1, тхт файл 2, и тхт файл 3.
В тхт 1 засовываешь все ссылки старые, каждая с новой строки.
В тхт 2 засовываешь все ссылки новые, каждая с новой строки, ну чтобы поочередность была такая, как в тхт 1.
В тхт 3 вставляешь свою базу данных.
Потом берешь скрипт, который будет брать первую ссылку из тхт 1, искать ее в тхт 3 (базе данных), и заменять ее первой ссылкой из тхт 2. Потом возьмет вторую, и заменит ее соответственно второй в базе. И так далее, пока не заменит все ссылки... Вот и все...
|
|
|
12.05.2015, 06:25
|
|
#30
|
Регистрация: 27.01.2015
Сообщений: 61
|
Вот, можешь попробовать использовать такой скрипт.
Он подходит, к описанию выше.
<?php
$txt1 = file('1.txt', FILE_IGNORE_NEW_LINES);
$txt2 = file('2.txt', FILE_IGNORE_NEW_LINES);
$txt3 = file_get_contents('3.txt');
$txt3 = str_replace($txt1, $txt2, $txt3);
file_put_contents('3.txt', $txt3);
?>
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0, гостей: 1)
|
|
|