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

  • Отсрочка (задержка) публикации RSS после выхода поста
  • Добавление ссылки “Администрирование” на страницу “All-Settings” (Все настройки)
  • Удаление атрибута из всех комментариев

Чтобы не пропустить следующие обновления этого цикла, настоятельно прошу вас подписаться на RSS, чтобы получать всегда свежую информацию прямо в ваш ридер. А теперь начинаем:

Отсрочка (задержка) публикации RSS после выхода поста

Отсрочку выхода ленты после выхода поста обычно применяют, чтобы предотвратить воровство контента. Вернее, не предотвратить именно само воровство, а обезопасить себя от того, что новость, транслирующаяся с на посторонний блог, была проиндексирована быстрее, чем основной пост. Для этого применяется хак для WordPress в виде функции, которую надо добавить в любое место файла function.php рабочей темы вашего блога на WordPress:

// delay feed update
function publish_later_on_feed($where) {
	global $wpdb;
	if (is_feed()) {
		// timestamp in WP-format
		$now = gmdate('Y-m-d H:i:s');
		// value for wait; + device
		$wait = '2880'; // время отсрочки в минутах
		// http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
		$device = 'MINUTE'; // MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
               // add SQL-sytax to default $where
		$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
	}
	return $where;
}
add_filter('posts_where', 'publish_later_on_feed');

Также после написания поста, вы можете обнаружить ошибку, которую необходимо будет исправить и заново опубликовать пост. Значит RSS выйдет уже дважды, в неправильном варианте и в правильном. Чтобы этого избежать полезно применять код, опубликованный выше.

В коде по умолчанию, значение отсрочки обозначено равным 2880 минутам, что равно 2 суткам. Вы можете изменить его на свое усмотрение.

Добавление ссылки “Администрирование” на страницу “All-Settings”

Не так давно я писал в статье “Скрытая фишка WordPress” о том, что если ввести в адресную строку браузера адрес вида http://ваш.доменю.ру/wp-admin/options.php">http://ваш.доменю.ру/wp-admin/options.php, то можно попасть на страницу админки, где выводятся абсолютно все настройки вашего блога. Все собрано в одном месте, все можно изменять, но все позиции по-английски. Побывать и поанализировать данные этой странице на досуге бывает очень полезно, поэтому с помощью небольшого хака для WordPress мы можем сделать ссылочку из главного меню административной части блога на эту, суммирующую все настройки, страницу.

function all_settings_link() {
	add_options_page(__('All Settings'), __('All Settings'), 'administrator', 'options.php');
}
add_action('admin_menu', 'all_settings_link');

Этот небольшой код надо добавить в файл function.php действующей темы вашего блога. Ссылка будет иметь анкор “All Settings”

Удаление атрибута nofollow из всех комментариев

Существует миллиард способов, чтобы удалить атрибут nofollow из комментариев, но нет способа проще, чем способ гуру php программирования Томаса Шольца (Thomas Scholz).

function xwp_dofollow($str) {
	$str = preg_replace(
		'~<a ([^>]*)\s*(["|\']{1}\w*)\s*nofollow([^>]*)>~U',
		'<a ${1}${2}${3}>', $str);
	return str_replace(array(' rel=""', " rel=''"), '', $str);
}
remove_filter('pre_comment_content',     'wp_rel_nofollow');
add_filter   ('get_comment_author_link', 'xwp_dofollow');
add_filter   ('post_comments_link',      'xwp_dofollow');
add_filter   ('comment_reply_link',      'xwp_dofollow');
add_filter   ('comment_text',            'xwp_dofollow');

Суть этого хака для WordPress заключена в том, что его достаточно просто вставить в файл function.php и он сам собой заработает.

Оригинальная статья, по материалам которой написан этот цикл, находится на блоге “Diggin into WordPress

Закладки:, , ,

Связанные записи: