👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →
Есть каталог машин. В нём все машины имеют свои уникальные номера, не по порядку. Раньше Я записывал их в начало заголовка (например, «92. Toyota Ist 2002 год»), но теперь пришла необходимость убрать номер из заголовка и вставить его в дополнительное поле.
Можно сделать это без ручного редактирования каждой записи? А то Я этот каталог уже дважды перебирал, а там около 80 записей!
А все номера разные?
Да.
Если да, то тут никак, кроме прямого редактирования, не решить проблему. Однако можно упростить редактирование, если воспользоваться плагинами наподобие Search and Replace. Он позволяет напрямую в базе данных искать и заменять текст, не редактируя каждый пост.
Написал пример скрипта: http://wordpress.pastebin.com/NfcQncyM
Перед запуском стоит сделать резервную копию базы. Скрипт должен быть в корневом каталоге (рядом с wp-load.php).
Получилось! ^____^
Благодарю!!!
А что делает этот скрипт? В чем его суть?
Удаляет из заголовка записей номер вместе с точкой и пробелом и вставляет его записям дополнительным полем с именем «name».
То есть скрипт ищет в заголовке цифры, удаляет их оттуда и переносит в произвольное поле. А это поле точно называется name? Или number?
Как долго хранится код на pastebin.com?
Я немного поискал, и не нашёл ответа. Задал вопрос на Google Ответах, сразу-же ответили “7 дней”. Но Я не уверен, что прям семь. Хотя, на последней странице архива Pastebin самые давние сохранены 1 день назад.
Видимо, вечно. При публикации нового кода есть параметр «Post expiration», и по-умолчанию он выставлен на «Never».
Насчёт бэкапа данных — это ценная подсказка :)
Благодарю! Сейчас попробую.
А теперь хорошо было бы то же самое и с годом сделать. Можно? Ну пожа-а-алуйста :3
Для года:
Стоит сделать бэкап и в этот раз :)
Н-да, фрагмент опять отобразился некорректно (ниже оставил комментарий по этому поводу, он пока в модерации).
Полный фрагмент: http://wordpress.pastebin.com/YiN1r0BP
Вероятно, нужно было вставлять без <?php и ?>. Но даже в этом случае некоторые детали пропадают (например, во фрагменте, который Grawl вставил ниже, отсутствуют теги <br />).
На счет тегов <br/> – приведите пример кода. У меня вроде нормально отображается все.
По поводу остального кода – есть баг с отображением вот этого куска кода: <?php – добавляется лишний пробел между < и ?php. Чтобы этого не происходило, < можно вставлять так:
[img]http://dl.dropbox.com/u/2027201/Images/tiaurus-2011-01-23_093222.png[/img]
Понятно, спасибо. Пример можно посмотреть по исходной ссылке на Pastebin. Наверное, <br /> тоже нужно было вставлять через < и >. Это терпимо, хотя и не очень удобно.
И это сработало! :) С первого же раза! :) Даже не знаю, чем отблагодарить :)
Лучшая благодарность удаленному помощнику – денежная :)
Да. Надо будет зарплаты кусочек выпилить доброму человеку :)
Вообще, наверное, надо ссылку: http://abc-japan.ru/catalog
Вижу, что tiaurus волнуется за сохранность пригодившегося скрипта. Думаю, неплохо будет увековечить его здесь:
Есть вопрос и есть работающий ответ. Думаю, что и то и другое может быть полезно не только задавшему и ответившему, но и другим. А зная, что публичные онлайновые сервисы не хранят данные вечно, лучше все же приводить код прямо тут.
Я хотел скопировать сюда, но передумал, вспомнив, что здесь фрагменты уже дважды отображались некорректно. Подобные моменты смазывают удовольствие от работы с системой :) Предложение по этому поводу осталось без ответа.
Pastebin рекомендуется в правилах англоязычного форума WordPress, где сохранность не менее важна, и содержит фрагменты как минимум трёхлетней давности.
Если предпочтительно всё же копировать сюда — нет проблем.
Не по теме — придумал решение проблемы с тегами внутри кода (для <?php, <br /> и любых других) при использовании SyntaxHighlighterPro. Можно добавить фрагмент в functions.php темы:
/is', $comment_text, $matches);
if ( !empty($matches) )
$comment_text = str_replace($matches[1], esc_html($matches[1]), $comment_text);
return $comment_text;
}
add_filter('comment_text', 'esc_html_for_php', 0);
Добавил – не работает :(
Решил проблему сменой плагина, использующего скрипт SyntaxHighlighter на плагин, использующий библиотеку GeSHi.
Спасибо! Проверил CodeColorer на тестовом блоге — все символы сохраняются.