WordPress, Введение

10 советов по оптимизации WordPress темы

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

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

 

Предельное количество слов в выдержке

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

add_filter('excerpt_length', 'ilc_excerpt_length');
function ilc_excerpt_length( $length ){
	return 10;
}

Здесь мы используем хук WordPress фильтра. Он позволяет быстро анализировать полученные данные и изменить их до того, как они будут сохранены в базе данных или отображены на странице. В этом случае  устанавливается максимальное количество слов, выдержка которых равна 10.

Добавление Favicon при помощи WordPress Hook







Хуки, или как их еще называют – крючки, позволяют вставить собственный код, не изменяя шаблон. Подобные фрагменты существенно увеличивают  гибкость и мобильность, ведь для внесения коррективов теперь потребуется лишь изменить функцию,  которая подключена к определенным хукам. Например, с помощью изменения функции в хуке “wp_head” можно добавить favicon на вашем сайте, не прикасаясь к файлу  “header.php”:

add_action( 'wp_head', 'ilc_favicon');
function ilc_favicon(){
	echo "<link rel='shortcut icon' href='" . get_stylesheet_directory_uri() . "/favicon.ico' />" . "\n";
}

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

Обнаружение браузера Safari в iOs

В настоящее время мобильные версии web-сайтов стали создаваться с использованием различных методов и технологий. WordPress предлагает безопасный способ определения браузера Safari, который позволит отследить, когда посетитель использует его с iPhone или IPad.
На странице в WordPress устанавливается переменная $is_phone, после чего появляется возможность его использования для внедрения альтернативных стилей или для показа альтернативного контента. Помимо этого, вы сможете отображать различные форматы видео для данных девайсов. На примере с переменной $is_iphone, наглядно демонстрируется обнаружение версии девайса и последующий показ альтернативных стилей в зависимости от значения переменной:

add_action('wp_print_styles', 'ilc_enqueue_styles');
function ilc_enqueue_styles(){
	global $is_iphone;
	if( $is_iphone ){
		wp_enqueue_style('iphone-css', get_stylesheet_directory_uri() . '/iphone.css' );
	}
	else{
		wp_enqueue_style('common-css', get_stylesheet_directory_uri() . '/common.css' );
	}
}

В данном случае мы использовали только стандартную функцию WordPress: wp_enqueue_style, а также добавили альтернативные стили в верхнюю часть веб-страницы. При этом основной функцией стала wp_print_styles.

Удаление элементов из заголовка

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

<meta name="generator" content="WordPress 3.2.1">
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://example.com/xmlrpc.php?rsd">
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://example.com/wp-includes/wlwmanifest.xml">

Некоторые блогеры советуют избавляться от генератора мета-тегов. Они объясняют это тем, что хакеры могут узнать вашу версию WP. Чтобы обезопасить себя, всегда устанавливайте  только последние версии CMS WordPress.

Если вам не нужна XML-RPC функциональность, вы можете удалить ссылку RSD (вторая строка в приведенном выше отрывке кода). Если вы не используете Windows Live Writer, то можете также безопасно удалить третий элемент в нашем коде.

Ну а сейчас, маленькое отступление для ленивых, если Вы лентяй, то можете добавить эти строки в вашу тему:

add_filter('the_generator', create_function('', 'return "";'));
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');

Эти строки позволяют удалить соответствующие элементы в приведенном выше отрывке.

Перенаправление WordPress ленты на FeedBurner

Конечно, перенаправление WP Ленты для FeedBurner существенно облегчает задачу и выполняет работу за вас, но есть и некоторые особенности его использования. Если вы хотите знать статистику ваших подписчиков, то следует использовать FeedBurner или другой подобный сервис. Таким образом, если вы попытаетесь зайти на http://www.site.com/feed, вы будете перенаправлены на FeedBurner.

add_action('template_redirect', 'ilc_rss_redirect');
function ilc_rss_redirect() {
	if ( is_feed() && !preg_match('/feedburner|feedvalidator/i', $_SERVER['HTTP_USER_AGENT'])){
		header('Location: http://feeds.feedburner.com/wpday');
		header('HTTP/1.1 302 Temporary Redirect');
	}
}

Замените http://feeds.feedburner.com/wpday, на URL собственного сайта.

Показать Избранные изображения в ленте

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

add_filter('the_content_feed', 'rss_post_thumbnail');
function rss_post_thumbnail($content) {
	global $post;
	if( has_post_thumbnail($post->ID) )
		$content = '<p>' . get_the_post_thumbnail($post->ID, 'thumbnail') . '</p>' . $content;
	return $content;
}

Показать содержимое только для RSS подписчиков

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

add_shortcode( 'feedonly', 'ilc_feedonly' );
function ilc_feedonly( $atts, $content = null ) {
	if( is_feed() ) return '<p>' . $content . '</p>';
	else return;
}

Показать содержимое только для зарегистрированных пользователей

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

add_shortcode( 'loggedin', 'ilc_loggedin' );
function ilc_loggedin( $atts, $content = null ) {
	if( is_user_logged_in() ) return '<p>' . $content . '</p>';
	else return;
}

Показ ссылок обмена сообщениями в социальных сетях

Если по какой-то причине вы не хотите использовать стандартные кнопки  Facebook, Twitter и других социальных сетей для обмена сообщениями, вы можете добавить свои собственные кнопки с приведенным ниже кодом.
В данном случае осуществляется фильтрация содержимого с помощью content функции. В отличие от вышеприведенных схем, теперь мы будем перезаписать код и добавлять в него ссылки. Данный фильтр возвращает исходное содержание поста и способствует последующему объединению наших социальных сетей.

add_filter( 'the_content', 'ilc_share' );
function ilc_share( $content ) {
	global $post;
	$postlink  = get_permalink($post->ID);
	$posttitle = get_the_title($post->ID);
	$html = '<ul class="share-entry">';
	// Twitter
	$html .= '<li><a class="share-twitter" title="Share on Twitter" rel="external" href="http://twitter.com/share?text='.$posttitle.'&url='.$postlink.'">Share on Twitter</a></li>';
	// Facebook
	$html .= '<li><a class="share-facebook" title="Share on Facebook" rel="external" href="http://www.facebook.com/share.php?u=' . $postlink . '">Share on Facebook</a></li>';
	// LinkedIn
	$html .= '<li><a class="share-linkedin" title="Share on LinkedIn" rel="external" href="http://www.linkedin.com/shareArticle?mini=true&url=' . $postlink . '&title=' . $posttitle . '">Share on LinkedIn</a></li>';
	// Digg
	$html .= '<li><a class="share-digg" title="Share on Digg" rel="external" href="http://digg.com/submit?url=' . $postlink . '">Share on Digg</a></li>';
	// StumbleUpon
	$html .= '<li><a class="share-stumbleupon" title="Share on StumbleUpon" rel="external" href="http://www.stumbleupon.com/submit?url=' . $postlink . '&title=' . $posttitle . '">Share on StumbleUpon</a></li>';
	// Google+
	$html .= '<li><a class="share-googleplus" title="Share on Google+" rel="external" href="https://plusone.google.com/_/+1/confirm?url=' . $postlink . '">Share on Google+</a></li>';
	$html .= '</ul>';
	return $content . $html;
}

Если вы хотите, чтобы ссылками можно было пользоваться только при наличии определенных прав, добавьте следующий код перед global $post;:

if( !is_singular() ) return $content;

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

Добавляем свой логотип на страницу входа

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

add_action( 'login_head', 'ilc_custom_login');
function ilc_custom_login() {
	echo '<style type="text/css">
	h1 a { background-image:url('. get_stylesheet_directory_uri() . '/images/login-logo.png' . ') !important; margin-bottom: 10px; }
	padding: 20px;}
	</style>
	<script type="text/javascript">window.onload = function(){document.getElementById("login").getElementsByTagName("a")[0].href = "'. home_url() . '";document.getElementById("login").getElementsByTagName("a")[0].title = "Go to site";}</script>';
}

CSS код заменит стандартное изображение WordPress на то, которое нужно вам. Вы можете настроить путь к изображению в четвертой строке кода, приведенного выше.
Кроме того, JavaScript изменяет URL изображения, так что вы будете сразу попадать на собственную домашнюю страницу, а не на wordpress.org.

 

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

 

Поделиться:

Похожие записи

  • Спасибо ваша тема подсказала мне интересную идею, и я установила плагин FeedOnly, который позволяет делать скрытый текст, доступный только для подписчиков. Весь контент я пока скрыть побаиваюсь ))

  • Мама дорогая!!! Но все равно – спасибо!

  • Плагин не работает в моей версии wp, к тому он бесплатен лишь первые 7 дней.
    А как же можно скрыть часть текста в определенной записи от неподписанных читателей?

  • Очень полезная статья, в закладки

  • спасибо, буду пробовать

  • Ого, здесь много интересного и нового для меня, буду пробовать…

  • Главное удалить все исходящее ссылки, и еще можно убрать
    лишние элементы которые не будут использоваться. Это реально разгрузит страницу
    и вполне возможно положительно скажется на продвижении сайта.