Архив метки: Wordpress

WordPress. Опыты с wp-cron

Как-то раз на одном из моем хостинге, при разворачивании нового сайта, вызов wp-cron.php из wordpress не работал. Все бы было хорошо, если бы мне не понадобился плагин WP Super Cache для корректной отдачи HTTP заголовков, который при активации проверяет доступность wp-cron.php вот этим кодом:

$cron_url = get_option( 'siteurl' ) . '/ wp-cron.php?check=' . wp_hash('187425');
$cron = wp_remote_get($cron_url, array('timeout' => 0.01, 'blocking' => true)); 
if( is_array( $cron ) ) { 
   if( $cron[ 'response' ][ 'code' ] == '404' )

Мдя. У меня аккурат 404 и возвращало. Ну как сие обойти, догадаться не сложно, но вот как мусор подчищать в кэше было не очевидно. Обкурившись интернета до полной нирваны, решил устроить дерганье wp-cron.php средствами сервера хостинга, благо у меня такая возможность есть.

В процессе по наступал на россыпь маленьких граблей, о них тут и расскажу. Первое что надо сделать, это сказать wordpress, что мы сами знаем как часто нам крон дергать. Для этого в файле wp-config.php рисуем строку:

define('ALTERNATE_WP_CRON', true);

повыше директивы

require_once(ABSPATH . 'wp-settings.php');

После того, как это прописалось, я взял голыми руками wp-cron.php и скопировал его в файл vasya_forever.php и положил рядом с файлом wp-cron.php в тот же каталог.

Этого глумления мне показалось мало, поэтому я вместо прав 644 выдал файлу vasya_forever.php права 755. Мне его надо будет посторонними вещами дергать, для этого и сыр-бор. Если выставить 755 на wp-cron.php то любой шланг из интернета сможет дергать ваш wordpress cron когда угодно, и в общем-то нагрузить сервер от души, если запросов будет много. Соответственно, настоящее имя файла вася-форевер я не скажу, и вы ни кому не говорите.

После этих манипуляций я в DirectAdmin для крона прописал следующую команду запуска:

*/15****/usr/bin/wget -O tempo http://myenotes.ru/vasya_forever.php > /dev/null

Это извращение заставляет wget, с сервера хостинга, каждые 15 минут обращаться к файлу vasya_forever.php, который будет выполнять крон-задания вордпресс. Все, что wget получит, он будет аккуратно складывать в файл tempo, затирая его при каждом вызове. Директива >/dev/null  заставляет cron писать не мне на почту, как это принято в Unix системах, а сразу все письма умножать на ноль, чтоб не отвлекали. Продолжаться этот бардак, как вы понимаете, будет до тех пор, пока мне не надоест.



2017-05-09T16:29:58
WordPress

WordPress. Шаблон Your Journey – Travel Blog WordPress и описание рубрик

Прикупил на Themeforest шаблон Your Journey – Travel Blog WordPress для одного из сайтов. Начал заполнять контентом, добавлять описание рубрик. И тут я вижу, что описание рубрики вставляется в шапку, а не контентный блок, да еще и без html разметки. Т.е получается сплошной текст в шапке, а при размере в 3000 знаков, это выглядит убого и не читабельно.

Делаем нормальное описание рубрики

Ну ок, попробуем это исправить (Пример того, что получится можно посмотреть тут).

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

Формат отображения новостей listing


Не будем трогать оригинальный шаблон отображения новостей, а сделаем новый. Для этого создадим файл /www/wp-content/themes/Yourjourney/layout/listingc.php и скопируем в него содержимое из файла /www/wp-content/themes/Yourjourney/layout/listing.php

Находим и меняем строки:

<div class="content">
<?php while( have_posts() ) : the_post(); ?>

на

<div class="content">
<?php 
$aTerm = get_queried_object();
$catdescr = category_description($aTerm->term_id);
                
if(!empty($catdescr)) { ?>
   <div class="type-post status-publish format-standard has-post-thumbnail hentry catdescr"><?php echo $catdescr ?></div>
<?php } ?>
<?php while( have_posts() ) : the_post(); ?>

Теперь у нас описание рубрики будет выводится в блоке content с HTML разметкой.

Далее правим отображение описания рубрики в шапке, для себя я сделал отображение короткого описания в 55 слов. Используется функция wp_trim_words.

Находим и меняем строку:

$sub   = $aTerm->description;

на

$sub   = wp_trim_words($aTerm->description);

Если вы хотите сделать короче описание, скажем в 10 слов, то код изменим на такой:

$sub   = wp_trim_words($aTerm->description, 10);

Если хотите вообще отключить вывод анонса в шапке, то делаем например так:

$sub = '';


Остался последний шаг, подключим наш новый шаблон рубрик. Для этого отредактируем файл /www/wp-content/themes/Yourjourney/category.php и поправим следующую строчку:

get_template_part('layout/listing');

на

get_template_part('layout/listingc');

Готово, теперь можно проверять.



2017-05-09T09:39:29
WordPress

Как отключить трекбэк и пинг на существующих постах в WordPress

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

Почему необходимо отключить пинги и трекбэки в WordPress?

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

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

Это Pingback будет отображаться в их блоге в качестве модерируемого комментария в очереди с ссылкой на ваш сайт.

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

WordPress позволяет отключить эту функцию. Вы можете сделать это, перейдя на страницу Настройки -> Обсуждения, а затем снимите флажок рядом с варианта  „Разрешить оповещения с других блогов (уведомления и обратные ссылки) на новые статьи“.

Отключить pingbacks на всех новых статьях

 

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

Давайте посмотрим, как легко отключить трекбэки и пинги на существующих постах WordPress.

Отключить трекбэки и пинги для постов в WordPress

Во- первых, вам необходимо посетить страницу Запись » Все записи, а затем нажмите на кнопку Параметры экрана в правом верхнем углу экрана.

Показать больше постов на странице

 

Теперь введите 999 рядом с вариантом «Количество элементов на странице», а затем нажмите на кнопку применить.

Это перезагрузит список постов, и теперь он будет показывать до 999 постов на одной странице.

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

Выделить все посты на странице

 

После этого необходимо выбрать «Изменить» в выпадающем меню и нажмите на кнопку «Применить».

 

WordPress теперь будет показывать вам окно редактирования свойства постов со всеми постами на выбранных страницах.

В объемном поле редактирования, вы должны найти вариант pings, а затем изменить его на «Не разрешать».

Не допускать пинги

Далее, вам просто нужно нажать на кнопку обновления, чтобы сохранить изменения.

WordPress теперь обновит и отключить пинг на всех выбранных постах.

Если у вас есть более 999 постов на вашем WordPress сайте, то вам нужно перейти на следующую страницу и повторите процесс.

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



2017-04-01T12:58:39
Лучшие учебники по Wodpress

Как запланировать cron jobs на сайте WordPress

На этом уроке мы объясним, как планировать cron jobs на сайте WordPress. Хрон планировщик заданий, который работает через интервалы времени в соответствии с вашими настройками во время создания хрон на базе операционных систем Unix. Он, как правило, автоматизирует несколько задач/заданий.

Просто предположим, вам нужно экспортировать данные из базы данных каждые два часа, и вы делаете это вручную. В этом случае вы можете запланировать хрон для выполнения этой задачи автоматически. Во-первых написать скрипт для экспорта данных из базы данных и соответствующего расписания хрон с помощью функции wp_schedule_event() в WordPress.

Действие wp_schedule_event() в WordPress сработает, когда прошел один час, и выполняется ваш скрипт для экспортирования данных из базы данных. В приведенном ниже фрагмента пользовательской функции do_this_hourly() будет выполнять ваш PHP код. Добавьте код, приведенный ниже в конце файла текущей темы в файле functions.php.

< ?php

 

add_action('my_hourly_event', 'do_hourly');

 

function my_active() {

    if ( !wp_next_scheduled( 'my_hourly_event' ) ) {    

 

        wp_schedule_event(time(), 'hourly', 'my_hourly_event');

 

    }

}

 

add_action('wp', 'my_active');

 

function do_hourly() {

    // Добавить что-то нужно делать каждые два часа

 

}

 

?>

 

Расписание хрона с планировщиком Cronjob

Вы также можете запланировать хрон с помощью плагина Cronjob Scheduler в WordPress. Это лучший WordPress плагин, чтобы запланировать cronjobs в ваших WordPress сайтов. Это позволит вам запускать свои задачи своевременно, без необходимости частого посещения своего сайта, все, что вам нужно, это по крайней мере, 1 действие и планировщик Unix Crontab!

Как настроить планировщик Cronjob

Загрузите последнюю версию плагина из каталога плагинов WordPress и загрузите его в папку wp-content/pluigns после того, как распакуете архивный файл. Теперь перейдите в админку в WordPress => Плагины и активируйте плагин Cronjob Scheduler, чтобы включить его функции. Ниже скриншоты, чтобы настроить плагин Cronjob Scheduler в WordPress.

плагин cron WordPress



2017-02-20T20:36:31
Лучшие учебники по Wodpress

Как объединить два WordPress сайта вместе без потери SEO

Недавно один из наших читателей спрашивал нас, как объединить два WordPress сайта вместе? Иногда вы можете создать несколько сайтов WordPress, но позже хотите объединить их вместе. WordPress поставляется со встроенными инструментами, которые могут легко сделать это. В этой статье мы покажем вам, как правильно объединить два сайта на WordPress вместе.

Зачем объединять два WordPress-сайта вместе?

Может быть много причин для объединения двух или более WordPress сайтов вместе. Вы можете начать новый WordPress блог, объединив свои старые блоги, так что вы можете иметь все свое содержание в одном месте.

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

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

Давайте посмотрим, как легко объединить WordPress сайты вместе.

Экспорт контента из старого WordPress сайта

Ради этого примера, мы будем говорить, что у вас есть сайт WordPress на http://oldsite.ru, и вы хотите, его объединить с сайтом http://newsite.ru/.

Примечание
Важно: Не забудьте создать полную резервную копию WordPress обоих ваших веб — сайтов. Это пригодится в случае, если что-то пойдет не так, и вы хотите, вернуться к первоначальной установки.

Во- первых, вам необходимо посетить страницу Инструменты » Экспорт внутри админки вашего старого WordPress сайта. Это сайт, который вы хотите объединить с новым сайтом.

Экспорт контента со старого сайта WordPress

Убедитесь, что вы выбрали вариант «Все содержимое», а затем нажмите на кнопку «Скачать файл экспорта», чтобы продолжить.

WordPress теперь будет подготавливать файл XML и отправить его в адресную строку браузера. Вам нужно сохранить этот файл на вашем компьютере, так как вы будете внуждаться в нем на следующем шаге.

Этот файл будет содержать следующее:

Объединение контента на новом WordPress сайте

Теперь, когда вы экспортировали контент со старого сайта, настало время, объединить его с вашим новым сайтом WordPress.

Зайдем в админку целевого сайта (место, где вы должны объединить содержание) и посетить страницу Инструменты » Импорт.

Установить импортер WordPress

На этой странице перечислены все инструменты импорта, которые вы можете установить и запустить на вашем WordPress сайте. Прокрутите вниз до нижней части и нажмите на ссылку «Установить сейчас» под WordPress.

После того, как импортер WordPress установлен, вам нужно нажать на ссылку «Выполнить импортер», чтобы продолжить.

Запуск импортера в WordPress

Далее, вам будет предложено загрузить файл экспорта WordPress.

Вам нужно нажать на кнопку «Выбрать файл», а затем выберите XML-файл, который вы скачали ранее.

Загрузить файл импорта WordPress

Нажмите на ссылку кнопку «Загрузить файл импорта» для продолжения.

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

Настройка импорта в WordPress

Он попросит вас назначить авторов или создавать новых авторов.

Можно назначить импортируемое содержимое для существующего пользователя на вашем WordPress сайте или создать нового автора.

Далее, установите флажок под опцией «Импорт вложения«, чтобы импортировать вложения медиа-файлов со старого WordPress сайта.

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

WordPress теперь будет импортировать содержимое из вашего файла экспорта и добавить его в свой новый сайт WordPress. После завершения, вы увидите сообщение об успешном выполнении.

Импорт закончен в WordPress

Настройка перенаправлений

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

Вам нужно будет отредактировать файл .htaccess на старом WordPress сайте.

Вы можете отредактировать файл .htaccess, подключившись к WordPress сайту с использованием клиента FTP или с помощью диспетчера файлов в Cpanel на WordPress хостинге.

Файл .htaccess находится в корневой папке вашего сайта.

Вам нужно разместить этот код в верхней части вашего файла .htaccess.

#Options +FollowSymLinks

RewriteEngine on

RewriteRule ^(.*)$ http://www.newsite.ru/$1 [R=301,L]

 

Не забудьте заменить newsite.ru на доменное имя вашего нового сайта на CMS WordPress. Сохраните изменения и загрузите файл обратно на сервер.

Теперь вы можете посетить любой пост на вашем старом WordPress сайте, и вы будете автоматически перенаправлены на тот же пост на новом сайте.

Поиск и устранение неисправностей после объединения двух WordPress-сайтов

Как массово объединить и отредактировать категории и теги?

Вы можете очистить категории и теги, после слияния двух WordPress сайтов. Для подробных инструкций, проверьте наш учебник о том, как массово объединить и отредактировать категории в теги в WordPress .

Как импортировать недостающие изображения?

Для этого вам придется временно отключить переадресацию путем редактирования файла .htaccess и удалить код, который вы добавили ранее. После этого вы можете следовать инструкциям в нашем руководстве о том, как импортировать внешние изображения в WordPress.

Не забудьте настроить переадресацию после импорта изображений.

Фиксировать URL-адреса, указывающие на старый домен в постах и ​​страницах

Все внутренние ссылки в импортированных постах и страницах по-прежнему будут указывать на ваш старый сайт. Поскольку у вас есть настройки перенаправления, пользователи будут по-прежнему переходить на правильной пост на новом сайте.

Тем не менее, вам все еще нужно обновить URL — адреса для улучшения SEO и лучшего пользовательского опыта. Для получения пошаговых инструкций смотрите наш учебник о том, как обновить URL — адреса при перемещении WordPress сайта.

Мы надеемся , что эта статья помогла вам объединить два WordPress сайты вместе. Вы также можете увидеть наш шаг за шагом WordPress SEO руководство для начинающих.

Как объединить два WordPress сайта вместе без потери SEO



2017-02-11T20:46:43
Лучшие учебники по Wodpress

Расширенный WordPress поиск и замена в базе данных в Linux с помощью sed

При переносе сайта WordPress или WooCommerce магазина на новый домен, вы можете найти некоторые URL-адреса или пути не обновленными. Точно так же при переходе с HTTP на HTTPS вы можете получить ошибки смешанного содержания, как правило, это может быть исправлено путем обновления базы данных. Традиционно существуют некоторые плагины и скрипты, которые помогут вам обновить базу данных, чтобы решить эти проблемы, если у вас все еще есть проблемы, этот пост должен помочь вам исправить пути и URL-адреса в вашей базе данных WordPress.

Мы впервые столкнулись с этой проблемой, когда обнаружили плагин Ultimate VC Add-ons, чтобы кодировать двоеточие и косую черту по- разному , как это http%3A%2F%2F

Я предполагаю, что у вас уже есть дамп базы данных WordPress, созданный с помощью PhpMyAdmin, плагина Adminer, дамп MySQL или WP-CLI.

Расширенный WordPress поиск и замена в базе данных в Linux с помощью sed

Я собираюсь использовать инструменты Linux  grep и sed для достижения максимальной скорости. Если у вас нет доступа к Linux, то вы можете использовать WordPress плагин  Better Search and Replace.

Поиск вхождений

Мы можем смоделировать с Grep, используя -c флаг, которая будет подсчитывать количество раз он находит строку domain.ru

grep -c 'andreyex.ru' database.sql

 

Вы получите целое число в качестве вывода, если вы видите 0, то нет вхождения domain.ru в базе данных

234

 

Закодированный URL

Некоторые плагины используют кодировку URL, которая использует этот формат для миграции HTTP и HTTPS %3A = :и %2F = /.

Для того, чтобы проверить, есть ли у вас какие-либо из них, в вашей базы данных, используете эту команду.

grep -c 'http%3A%2F%2F' database.sql

 

Слеши

Некоторые плагины избегают  и / и могут быть легко пропущены.

grep -c 'http://domain.ru' database.sql

 

Путь WordPress

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

grep -c '/public_html/domain.ru' database.sql

 

Фактическая замена

Многие учебники используют в /качестве разделителя sed, я использую #, чтобы сделать его более удобным для чтения. Это также означает, что вам не придется искать какие — либо косые черты (/) в вашей команде SED.

означает глобальная замена и переадресовывает на новый файл, чтобы не изменять исходный дамп базы данных.

Эта команда заменяет domain.ru на newdomain.ru в файле dump.sql

sed 's#domain.com#newdomain.ru#g' dump.sql > staging-or-newdomain.sql

 

В этом примере есть вложенная папка для установки WordPress, # помогает maintan сохранить читабельность.

sed 's#domain.ru/oldfolder#newdomain.ru/newfolder#g' dump.sql > staging-or-newdomain.sql

 

Закодированный URL

Замена кодирующейся строки URL

sed 's#http%3A%2F%2Fdomain.ru#http%3A%2F%2Fnewdomain.ru#g' dump.sql > staging-or-newdomain.sql

 

Это как заменить закодированые строки URL доменов в подпапках

sed 's#http%3A%2F%2Fdomain.ru%2Fsubfolder#http%3A%2F%2Fnewdomain.ru%2Fsubfolder#g' dump.sql > staging-or-newdomain.sql

 

Слеши

Если вы нашли косую черту, эта команда заменит их

sed 's#http://domain.ru#http://newdomain.ru#g' dump.sql > staging-or-newdomain.sql

 

WordPress путь поиска и замены

Замена пути

sed 's#/public_html/andreyex.ru#/public_html/newfolder#g' dump.sql > staging-or-newdomain.sql

 

Это должно работать в большинстве баз данных WordPress, дайте нам знать в комментариях, если вы обнаружите какие-либо другие необычные шаблоны!

Использование Gzip для сжатия новых Dump

Мы можем сжать модифицированный дамп с помощью Gzip легко, он значительно сократит файл .sql

cat dump.sql | gzip > dump.sql.gz

 

Теперь вы можете повторно импортировать измененный дамп с помощью WP-CLI, PhpMyAdmin или Adminer.



2017-02-11T02:47:12
Базы данных