10 полезных WordPress Hook Hacks

Крючки очень полезны в WordPress.Они позволяют “ hook” пользовательские функции к существующей функцией, которая позволяет изменять WordPress’ функциональности без редактирования файлов ядра.В этой статье мы собрали 10 чрезвычайно полезны готовые к использованию WordPress крючки, наряду с примерами и кодирования explanations.

Что такое Hook

Для достижения определенного эффекта на блоге WordPress, вы должны изменить способ WordPress работает.Некоторые из этих изменений происходят на то, что WordPress разработчики называют “ основные файлы, ” файлы, необходимые для WordPress работать properly.

Но изменения основных файлов это всегда плохая идея.Это может создать брешь.Кроме того, вы потеряете изменения при обновлении WordPress installation.

Тем не менее, разработчикам необходимо перезаписать некоторые из WordPress’ функциональности, поэтому WordPress предоставляет Плагин API.

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

Как использовать крючки на Ваш WordPress Blog

Если you’ повторное написание плагина, можно было бы написать крючков в functions.php файл.Этот файл находится в wp-content/themes/yourtheme directory.

Крюк, как и следовало ожидать, “ hooks” одной функции к другой.Например, вы могли бы написать пользовательские функции и приложите его к одному из WordPress’ основные функции:

add_action ( 'publish_post', 'myCustomFunction' );

В этом примере мы соединить наши собственные функции WordPress’ publish-post функция, которая означает, что каждый раз, когда WordPress выполняет publish-post функции, она также будет выполнять эту крючковатым function.

Конечно, мы также можем удалить крючки помощью remove_action() функции:

remove_action ( 'publish_post', 'myCustomFunction' );

Крючки ресурсов:

1.Отключить WordPress’ Автоматическая Formatting

Screenshot

problem.Вы, наверное, заметили, что, по умолчанию, WordPress преобразует обычные кавычки на “ curly” котировки, и делает другие небольшие изменения форматирования, когда пост displayed.

Это очень здорово для людей, которые публикуют нормальное содержание, но и тех, кто использует свой блог для обсуждения код будет раздражаться, потому что, если вставить в текстовый редактор, код с фигурными кавычками возвращается синтаксис errors.

solution.Просто вставьте следующий код в ваш functions.php файла:

function my_formatter($content) {
	$new_content = '';
	$pattern_full = '{(\[raw\].*?\[/raw\])}is';
	$pattern_contents = '{\[raw\](.*?)\[/raw\]}is';
	$pieces = preg_split($pattern_full, $content, -1, PREG_SPLIT_DELIM_CAPTURE);

	foreach ($pieces as $piece) {
		if (preg_match($pattern_contents, $piece, $matches)) {
			$new_content .= $matches[1];
		} else {
			$new_content .= wptexturize(wpautop($piece));
		}
	}

	return $new_content;
}

remove_filter('the_content', 'wpautop');
remove_filter('the_content', 'wptexturize');

add_filter('the_content', 'my_formatter', 99);

После that’ сделано, вы можете использовать [raw]шорткода в ваших сообщениях:

[raw]This text will not be automatically formatted.[/raw]

Код explanation.Нашим первым шагом здесь было создать функцию, которая использует регулярные выражения, чтобы найти [raw] шорткода в posts’ content.

Затем подключите наших my_formatter() функции WordPress’ the_content() функция, которая означает, что my_formatter() теперь будет автоматически вызываться каждый раз, когда the_content() является called.

Удалить автоматического форматирования, мы используем remove_filter() функция, которая позволяет удалять крюк на конкретные function.

Источник:

2.Обнаружение Visitor’ S-браузер с использованием Hook

Screenshot

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

solution.Ничего сложного здесь: просто вставьте следующий код в вашем functions.php файл, а затем сохраните файл и you’ Re сделано

<?php
add_filter('body_class','browser_body_class');
function browser_body_class($classes) {
	global $is_lynx, $is_gecko, $is_IE, $is_opera, $is_NS4, $is_safari, $is_chrome, $is_iphone;

	if($is_lynx) $classes[] = 'lynx';
	elseif($is_gecko) $classes[] = 'gecko';
	elseif($is_opera) $classes[] = 'opera';
	elseif($is_NS4) $classes[] = 'ns4';
	elseif($is_safari) $classes[] = 'safari';
	elseif($is_chrome) $classes[] = 'chrome';
	elseif($is_IE) $classes[] = 'ie';
	else $classes[] = 'unknown';

	if($is_iphone) $classes[] = 'iphone';
	return $classes;
}
?>

После того как вы сохранили файл, функция автоматически добавляет класс CSS с body теги, как показано на примере ниже:

<body class="home blog logged-in safari">

Код explanation.WordPress имеет глобальные переменные, которые возвращают true, если посетитель использует конкретный браузер.Если visitor’ S браузер Google Chrome, $is_chrome переменная вернет true.Именно поэтому мы создаем browser_body_class() функция, которая возвращает имя visitor’ браузером с.После that’ сделано, мы просто подключить функцию WordPress’ body_class() function.

Источники:

3.Определить текста по умолчанию в TinyMCE

Screenshot

problem.Многие блоггеры почти всегда используют тот же формат для своего блога.Сообщения на моем собственном блоге WpRecipes.com всегда отображаются одинаково: некоторые тексты, код, а затем еще несколько text.

Что об экономии времени, заставляя TinyMCE? (WordPress’ визуальный редактор) для отображения текста по умолчанию

solution.Еще раз, крючки решение.Просто откройте Functions.php файл, вставьте следующий код, и пусть крючки творят чудеса

<?php
add_filter('default_content', 'my_editor_content');

function my_editor_content( $content ) {
	$content = "If you enjoyed this post, make sure to subscribe to my rss feed.";
	return $content;
}
?>

Код explanation.Этот код является мощный, и в то же метод так просто.Просто создайте функцию, которая возвращает нужный текст (в данном примере, мы определили некоторый простой текст, который просит читателей подписаться на blog’ Лента новостей с RSS), и подключить функцию WordPress’ default_content() функции.That’ S it.

Источники:

4.Вставить содержимое автоматически после каждого Post

Screenshot

problem.Большинство блогов использовать single.php шаблон вставить текст, изображения или объявления только после поста.Конечно, это может быть сделано путем открытия single.php и вставить нужный текст после the_content() функции.Но текст won’ т показать в своей ленте RSS?Крючки и техника, описанная ниже решить эту problem.

solution.Один раз, просто вставьте следующий код в functions.php файл вашей темы.That’ S it.

function insertFootNote($content) {
        if(!is_feed() && !is_home()) {
                $content.= "<div class='subscribe'>";
                $content.= "<h4>Enjoyed this article?</h4>";
                $content.= "<p>Subscribe to our  <a href='http://feeds2.feedburner.com/WpRecipes'>RSS feed</a> and never miss a recipe!</p>";
                $content.= "</div>";
        }
        return $content;
}
add_filter ('the_content', 'insertFootNote');

Код explanation.Цель insertFootNote() Функция довольно проста: он просто объединяет текст по вашему выбору $content переменная, которая содержит ваш post’ S content.

Тогда наш insertFootNote() функции подключили к the_content() функция, и она автоматически вызывается каждый раз the_content называется.Используя эту функцию в основном такая же, как вводить в текст в конце каждого post.

Памятка (!is_feed) условия на линии 2, которая предотвращает текст вставляется в канал.Если вы хотите, чтобы текст появится в вашем RSS-канал, замените линии 2 со следующим:

if (!is_home()) {

Источн …

Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров

Comments are closed.