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

Ограничьте слово графа выдержки

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

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

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

Добавить favicon Использование WordPress Крюк

Крючки позволяют нам вставлять пользовательский код, не касаясь шаблона. Это дает нам большую гибкость, потому что теперь, когда нам нужно что-то изменить, мы только должны изменить функцию, которая подключена к определенному крючку. Например, вы можете добавить значок на свой сайт, не касаясь header.php файла, просто подключив функцию в wp_head крючок:

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

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

Обнаружение Safari на iOS

В настоящее время веб-сайты обслуживают мобильные версии с использованием различных методов. 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' );
  }
}

В этом случае мы используем стандартную wp_enqueue_style функцию WordPress для добавления стилей к head элементу веб-страницы. Действие, которое мы прикрепляем нашу wp_print_styles функцию, является ; так, мы в основном говорю WordPress вывести соответствующий стиль листа, когда он печатает все другие необходимые листы стиля.

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

WordPress выводит несколько вещей в head разделе. В частности, generator мета-тег, ссылка RSD и wlwmanifest ссылка не будут очень помехать для многих пользователей:

<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">

Некоторые блоггеры говорят, что вы должны избавиться от generator мета-тега, так что никто не может сказать, какая версия 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

Это здорово, что WordPress предлагает каналы из коробки. Но если вы хотите получить статистику о своих подписчиках, вам придется использовать FeedBurner или аналогичный сервис. Чтобы перенаправить свой канал на один из них, используйте следующий фрагмент. Таким образом, если вы https://www.smashingmagazine.com/feed попытаетесь пойти в , вы будете перенаправлены feeds FeedBurner для Smashing Magazine.

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/smashingmagazine');
    header('HTTP/1.1 302 Temporary Redirect');
  }
}

Замените http://feeds.feedburner.com/smashingmagazine URL-адрес для собственного канала от FeedBurner.

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

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 и других социальных сетей для обмена публикациями, вы можете добавить свои собственные ссылки с кодом ниже, возможно, используя его в сочетании с одним из наборов значков Smashing Magazine, таких как Вкусы.

Здесь мы будем фильтровать содержимое с помощью the_content функции. Но, в отличие от того, что мы сделали, когда мы скорректировали длину выдержки или удалили generator мета-тег, мы не хотим перезаписывать его, а скорее, чтобы добавить наши ссылки на него. Таким образом, этот фильтр возвращает оригинальный контент поста, concatenating наших социальных сетей ссылки сразу после него.

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 крюк действия, который выполняет все функции, которые прикреплены к нему в элементе страницы входа 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 свою домашнюю страницу.

Заключительные мысли

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

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

Источник: smashingmagazine.com

Великолепный Журнал

Великолепный, сокрушительный, разящий (см. перевод smashing) независимый журнал о веб-разработке. Основан в 2006 году в Германии. Имеет няшный дизайн и кучу крутых авторов, которых читают 2 млн человек в месяц.

Добавить комментарий

%d такие блоггеры, как: