7 WordPress задач и их решение (Запросы к базам данных-Трюки с MySQL)
Большинство блоггеров используют в качестве движка 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 задач.
Источник: http://7bloggers.ru/7-wordpress-zadach-i-ix-reshenie/ |