7 WordPress задач и их решение

Большинство блоггеров используют в качестве движка WordPress. Не только потому что  этот движок распространен, но и потому что он почти идеален для блоггинга.  Работа с WordPress легка и не требует каких-либо навыков, но иногда перед веб-мастером / блоггером встают задачи, которые сложно решить, без дополнительных знаний. В этом посте я написал 7 задач, с которыми я сталкивался и их решение.

Задача 1. Открыть или закрыть комментирование в блоге для всех постов
Я сталкивался с ситуацией, когда на одном моем WordPress сайте было 107 записей. Во всех записях комментирование было закрыто, а я захотел, чтобы посетители оставляли свое мнение о записях, т.е. возникла необходимость открыть комментирование. Чтобы не изменять по отдельности каждую запись и сэкономить время нужно сделать следующие шаги.

Решение:
1) Войти в панель управления хостинга (Direct Admin, CPanel и др.);
2) Далее зайти в PHPMyAdmin, выбрать нужную базу данных и перейти на вкладку “SQL”, где можно выполнять SQL-запросы к базе данных.
3) Ввести в поле один из запросов:

Если нужно массово запретить комментирование во всех постах:

UPDATE wp_posts SET comment_status='close';

Если нужно массово разрешить комментирование во всех постах:

UPDATE wp_posts SET comment_status='open';

Если необходимо разрешить комментирование во всех постах только зарегистрированным посетителям блога:

UPDATE wp_posts SET comment_status='registered_only';

Задача 2. Разрешить или запретить трэкбеки и пинги для всех постов
Решение:
1) Войти в панель управления хостинга (Direct Admin, CPanel и др.);
2) Далее зайти в PHPMyAdmin, выбрать нужную базу данных и перейти на вкладку “SQL”, где можно выполнять SQL-запросы к базе данных.
3) Ввести в поле один из запросов:
Если нужно массово запретить трэкбеки и пинги для всех постов:

UPDATE wp_posts SET ping_status = 'close';

Массово разрешить трэкбеки и пинги для всех постов:

UPDATE wp_posts SET ping_status = 'open';

Задача 3. Массово удалить все посты из блога.
Если вам по каким-то причинам необходимо удалить все записи из блога и записей довольно много, чтобы делать это вручную, то можно вновь обратиться к SQL.

Решение:
1) Войти в панель управления хостинга (Direct Admin, CPanel и др.);
2) Далее зайти в PHPMyAdmin, выбрать нужную базу данных и перейти на вкладку “SQL”, где можно выполнять SQL-запросы к базе данных.
3) Ввести в поле следующий запрос:

DELETE FROM wp_posts WHERE post_type = "post";

Задача 4. Массово удалить все комментарии либо еще не одобренные комментарии.
На одном своем «сайте» я забыл поставить плагин, который борется со спамом. В итоге за неделю спамерами было оставлено около 400 сообщений, которые ожидают одобрения. Естественно, удалять комментарии по одному – это слишком долго и тяжело. Проще вновь воспользоваться SQL – запросом.

Решение:
1) Войти в панель управления хостинга (Direct Admin, CPanel и др.);
2) Далее зайти в PHPMyAdmin, выбрать нужную базу данных и перейти на вкладку “SQL”, где можно выполнять SQL-запросы к базе данных.
3) Ввести в поле один их запросов:
Если необходимо удалить не одобренные комментарии во всех записях:

DELETE from wp_comments WHERE comment_approved = '0';

Если необходимо удалить одобренные комментарии:

DELETE from wp_comments WHERE comment_approved = '1';

Задача 5. Перенести все записи из одной рубрики в другую.
Решение:
Для этой цели уже написан WordPress плагин Mass Post Manager.
Кроме переноса записей из одной категории в другую (Move all posts to a new category), этот плагин может:
- Удалять все записи из определенной категории (Delete all posts in category)
- Удалять все комментарии во всех записях определенной категории (Remove all comments in all posts from category, where state is)

Задача 6. Перенести или скопировать все записи, рубрики, страницы и комментарии из одного WordPress блога в другой.
Разработчики WordPress позаботились о тех, кому нужно будет перенести все записи или записи любого автора на другой блог.

Решение:
1) Зайти в админку блога, с которого необходимо перенести/скопировать записи (blog.ru/wp-admin)
2) Перейти в «Инструменты» – «Экспорт», выбрать: экспортировать всё или записи только определенного автора и нажать кнопку «Ок». После этого на жесткий диск(в указанное место) будет скопирован файл экспорта.
3) Зайти в админку блога на который необходимо перенести/скопировать записи
4) Перейти в «Инструменты» – «Импорт», далее выбрать:

WordPress Импорт записей, комментариев, произвольных полей, страниц, рубрик и меток из файла экспорта WordPress.

5) Кликнуть “Обзор“, выбрать файл, который был сохранен на пункте 2 и нажать на кнопку «Загрузить и импортировать файл».
Готово.

Задача 7. Перенести WordPress блог на другой домен.
Предположим, нужно изменить имя домена блога. Новый домен уже есть. Теперь нужно перенести все файлы и базу данных блога на новый домен так, чтобы все настройки и данные сохранились.

Решение:
1) Перенести все файлы WordPress на новый домен.
2) Сделать бэкап(резервное копирование) базы данных блога. Для этого в phpMyAdmin кликнуть на вкладке «Экспорт». Далее поставить галочку напротив «Сохранить как файл» и нажать «Ок». (Если база данных слишком большая желательно упаковать базу в zip, gzip). После этого файл базы данных будет сохранен на диск.
3) Создать новую базу данных MySQL для нового домена. В phpMyAdmin кликнуть на вкладке «Импорт». Выбрать файл, который получили на первом пункте и нажать «Ок». Дальше должна появиться надпись, сообщающая об успешном импорте:

Ваш SQL-запрос был успешно выполнен:
Содержимое файла было импортировано.

4) Изменить файл wp-config.php (изменить имя базы, если требуется – имя пользователя и пароль).
5) Теперь необходимо поменять все старые url в базе данных на новые. Для этого нужно зайти в phpMyAdmin на вкладку SQL и в поле ввода ввести следующие запросы.

*oldsite.com – url старого домена, newsite.com – url нового домена

Заменяется url/адрес блога в настройках:

UPDATE wp_options SET option_value = replace(option_value, 'http://oldsite.com', 'http://newsite.com') WHERE option_name = 'home' OR option_name = 'siteurl';

Заменяется URL (guid) каждого поста:

UPDATE wp_posts SET guid = replace(guid, 'http://oldsite.com','http://newsite.com');

Заменяется url во всех постах:

UPDATE wp_posts SET post_content = replace(post_content, 'http://oldsite.com', 'http://newsite.com');

Готово. Перенос сайта состоялся – все должно корректно работать на новом домене.

Надеюсь, вам пригодились или пригодятся в будущем данные решения этих 7 задач.

35 Responses to 7 WordPress задач и их решение
  1. сергей Ответить

    вот спасибо. как раз занимаюсь переездом на другой домен. полезный пост. спасибо !

  2. andcrew Ответить

    Очень полезная тема, думаю в будущем пригодится, поэтому добавляю в закладки. У меня есть один вопрос, я завел свой блог совсем недавно и в этом деле новичок. Помогите пожалуйста разобраться в одном вопросе. Как сделать так чтобы картинки вставленные в пост не открывались по щелчку мыши так как происходит у меня сейчас. Пример

    • 9SEO Ответить

      Если я правильно понял, то Вам нужно удалить ссылку с изображения. Для этого, когда пишите пост, в режиме визуального редактора кликните левой кнопкой мыши на картинку и нажмите кнопку удаления ссылки:

      • Tamber Ответить

        This “free sharing” of ionfmration seems too good to be true. Like communism.

  3. andcrew Ответить

    9SEO, спасибо огромное. Как я только не догадался(

  4. Андрей Ответить

    Спасибо за инфу. Полезно для меня. Особенно мне пригодилась решение задачки 4. Спама накопилось море :(

  5. Светлана Ответить

    Подскажите, пожалуйста: вывод списка”Схожие по теме записи” на этом блоге делается каким-то плагином?

    И еще, накопилось много “мусора”, сохраненные ревизии к записям (через сохранение черновиков), и надо сделать уборку. Увидела плагин, позволяющий стереть лишние ревизии (del_revisions.php). У меня он почему-то не встал. Действительно ли удаление ревизий существенно ускоряет работу WP?

    • 9SEO Ответить

      Плагин, который выводит схожие записи называется WordPress Related Posts.

      Насчет удаления ревизий…Не рискуйте ставить какой-то плагин, лучше делайте все сами. А именно:

      - Зайти в PHPMyAdmin, выбрать нужную базу данных и перейти на вкладку “SQL”
      - Ввести в поле запрос на удаление всех ревизий:

      DELETE FROM wp_posts WHERE post_type = “revision”;

      Не знаю, ускорит ли это работу, но база данных может стать меньше в разы…

      • Светлана Ответить

        Я все-таки установила плагин, и база облегчилась на 50% (видно из объема присылаемого резерва).
        На следующем (планируемом) блоге попробую больше работать “ручками”.

        WordPress Related Posts будет отбирать сам, что показывать? А если первоначально я не совсем правильно прописывала метки? Можно ли по ходу дела исправить?

        • Светлана Ответить

          Прекрасно установился WordPress Related Posts, показывывает то, что хочет, то есть демонстрирует, как непредусмотрительно я раньше ставила метки. :(
          Кошмар!
          Хорошо, что постов не много, буду править потихоньку.

          Спасибо за помощь.

  6. gettuned Ответить

    Интернет-магазин автотюнинга GetTuned.ru. Продажа, поиск, подбор доставка новых и б/у оригинальных тюнинг-запчастей на японские авто. Покупка любых товаров с аукционов Японии и США. Изготовление и ремонт изделий из стеклопластика и карбона. Разработка тюнинг-проектов. Поиск и покупка эксклюзивных авто в Японии и США Продажа литья и резины. Прошивка мозгов на Nissan и Toyota. Покупка любых товаров с аукциона Yahoo.

  7. Julia Ответить

    ДА, спасибо, полезная запись, может напишите еще какие то функции для БД ? =)

  8. Мексиканец Ответить

    Отличный пост! Была проблема поменять имя домена на wordpress – sql запросом я все сделал!

  9. Денис Ответить

    Подскажите, как массово перераспределить посты по рубрикам, чтобы при этом ссылки остались целыми, чтобы страницы не выпали из поисковиков?

  10. Ирина Ответить

    Перенесла блог на новый домен по вашей инструкции.Спасибо.Но у меня проблема с поддоменом.Поменяла все url,но выводит сообщение ‘Сервер не найден’.Помогите пожалуйста.

  11. Таня Ответить

    Очень приятно, что остались ещё такие как вы!

  12. Тамара Ответить

    Попробуем так, спасибо!

  13. Разработчик Ответить

    По №1. Т.е. получается, что галка “Разрешить оставлять комментарии на новые статьи” работает только на статьи, написанные с момента установки/снятия этой галки? А я мучился, как комментирование закрыть для всех постов, а то спамеры замучали.

  14. Виктор Ответить

    Всем хорош WP, но его последние версии жрут довольно таки много ресов хостинга((

  15. AlexeyChop Ответить

    Доброе время суток! Я работаю журналистом в одном из новых издательств и как раз ныне пишу статью по подобной Вашей тематике! Не могли бы Вы дать разрешение на публикацию Вашего материала в нашем печатном изданииб естественно с указанием ссылки на данную статью! Заранее благодарен!

  16. Строитель Ответить

    Сменил урл в базе с помощью запросов, как вы написали. Всё прошло гладко и быстро. Большое спасибо!

  17. denaie Ответить

    Спасибо огромное как раз искал как надо очистить все посты в вордпрессе

  18. Санкт Петербург Ответить

    Как сделать данный вариант для нашёго сайта?

  19. webamator Ответить

    автор, 7 конечно хорошее число но тема удаления комментов раскрыта не полностью – допишите 8-ое решение ))
    если просто выполнить такой запрос как вы пишите, под каждым постом будет показываться кол-во комментов (хотя самих комментов уже не будет)
    лечится еще одним запросом:

    UPDATE wp_posts SET comment_count='0'

    и по-русски, если блог вырежет код:

    АПДЕЙТ вп_пост СЕТ коммент_каунт=’0′

  20. Инна Ответить

    А что нужно сделать в админке – или с помощью плагина, чтобы получать на свою почту резервные копии блога? И как, если что, из последней потом восстанавливать блог?

    • Андрей Лем Ответить

      Инна, здесь есть подробный ответ ht_tp://bit.ly/eUUYyq. Только уберите подчеркивание.

    • Андрей Лем Ответить

      А еще спасибо за пост. Реально помог быстро удалить 6к спам комментов. В ручную бы я долго их удалял.

  21. Геннадий Ответить

    Информация полезная, но нашел то что искал. Скажите пожалуйста а перенос записей из одной рубрики в другую как нибудь отразиться на индексации этих страниц в поисковых системах?

  22. Александр Ответить

    Здравствуйте, хорошая статья, узнал много чего интересного, но у меня есть вопрос: У меня много рубрик получилось и я решил многие поудалять, а записи из этих рубрик перенести в другие. Что будет с ссылками и реттвитами, они пропадут или останутся? И вообще как сделать удаление рубрик наиболее правильно и безболезненно?

  23. Серж Ответить

    Спасибо огромное за полезные команды… А то у меня комментирование вообще закрылось, хотя в админке я его открывал)))

  24. Gitaros Ответить

    Как массово перенести выбранные рубрики в под рубрику.

  25. Десятин Ответить

    Спасибо! Таким образом быстро удалил все посты после кривого автопостинга! :)

  26. Irina Ответить

    Добрый день!

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

    очень нужно!

    спасибо! :)

    • Irina Ответить

      тег написать здесь невозможно. поэтому напишу его на русском: ноуиндекс

Leave a Reply

Your email address will not be published. Please enter your name, email and a comment.

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>