На WordPress с его набором приложений и отличной функциональностью можно создать сайт абсолютно любого уровня и типа. Но наряду с огромным количеством возможностей CMS есть некоторые функции WordPress, которым до сих пор не придавали особого значения. В этом посте мы ознакомимся с 8-ю из них.
Когда вы о них узнаете, то, скорее всего, очень сильно удивитесь, что они вообще существуют.
Выберите наиболее интересные и полезные функции для вас и вашего сайта.
Смотрите также:
1. Маскировка адреса е-mail сайте
Вам ведь приходилось указывать свой почтовый адрес в блоге на WordPress или на сайте? Скорее всего, что да. И если вы беспокоились о том, чтобы не попасть в список рассылки спама, то наверняка искали способы, чтобы скрыть эту информацию от роботов. Оказывается, такая функция давно существует на WordPress: antispambot().
Использование функции
Все довольно просто:
<?php $my_email_address = "my.secret.email.address@gmail.com"; $my_email_address_cloaked = antispambot( $my_email_address ); echo $my_email_address_cloaked; ?>
Но, конечно, вы не можете использовать PHP для контента на вашем сайте (разве что использовать соответствующий плагин). И для применения этой функции для своего сайта можно использовать маленький шорткод, указанный ниже:
<?php function antispambot_sc( $atts ) { extract( shortcode_atts( array( 'email' => '' ), $atts ) ); return antispambot( $email ); } add_shortcode( 'antispambot', 'antispambot_sc' ); // Usage: [antispambot email="my.cloaked.email.address@gmail.com"] ?>
С его помощью вы скроете адрес почтовой почты на любой странице сайта.
2. Разделение записей до и после тега «More...»
Функция get_extended() поможет вам буквально разделить две части, до и после тега <!--more-->.
Использование функции
И здесь нет ничего сложного. Представим, что перед вами файл single.php и вы собираетесь сделать так, чтоб реклама на сайте отображалась между началом и остальной частью статьи. Для этого создаем цикл:
<?php while( have_posts() ) : the_post(); $content_parts = get_extended( get_the_content() ); echo '<h1 class="post-title">' . get_the_title() . '</h1>'; echo '<p class="intro">' . $content_parts['main'] . '</p>'; echo '<!-- Paste your ad code here. -->'; echo '<div class="article">' . $content_parts['extended'] . '</div>'; endwhile; ?>
Отличный вариант без использования дополнительного кода!
3. Автоматическое исправление слова "wordpress"
Пожалуй, самая интересная часть этой статьи: о наиболее обсуждаемой функции capital_P_dangit(). Как вам известно, слово WordPress нужно писать с прописной буквы W в начале, и с P в середине слова. И эта функция поможет вам в этом, т.к. с ее помощью некорректное написание слова автоматически исправляется.
Использование функции
<?php $text = "WordPress is awesome!"; $corrected_text = capital_P_dangit( $text ); echo $corrected_text; // "WordPress is awesome!" ?>
О ней около 4-х лет назад писал в своем блоге Justin Tadlock и упомянул о том, что она может поломать URL. К счастью, в версии 3.0.1 эту проблему исправили, но все равно не полностью. Например, если вы неправильно напишите «wordpress» в коде, где прописное написание буквы "p" является очень важным, то функция исправления повредит код.
Но эта проблема легко решаема. Откройте файл functions.php в используемой вами теме (или создайте для этого новый плагин) и вставьте код, указанный ниже:
<?php remove_filter( 'the_title', 'capital_P_dangit', 11 ); remove_filter( 'the_content', 'capital_P_dangit', 11 ); remove_filter( 'comment_text', 'capital_P_dangit', 31 ); ?>
4. Удаление шорткодов
У вас может возникнуть необходимость исключить шорткод из текста при использовании части контента в превью к следующей записи, либо же вы начали использовать другую тему и не хотите, чтоб неактуальные тексты шорткодов отображались на сайте. Тогда функция strip_shortcodes() вам в этом поможет.
Использование функции
Очень хороший пример использования этой функции можно наблюдать здесь — Codex. Представим, что вам нужно удалить шорткод в домашней странице, но при этом оставить его на других страницах. Для этого используйте функцию strip_shortcodes() следующим образом:
<?php function remove_shortcode_from_index( $content ) { if ( is_home() ) $content = strip_shortcodes( $content ); return $content; } add_filter( 'the_content', 'remove_shortcode_from_index' ); ?>
Все быстро и достаточно просто.
5. Обновление правил перезаписи
Если вы занимаетесь разработкой тем или плагинов, и вам нужно добавить обновленное правило для функции, то пользователи должны обновить правила перезаписи. Это можно сделать на странице опций Постоянных ссылок. Или же создайте автоматическое обновление правил перезаписи с помощью функции flush_rewrite_rules().
Использование функции
Если вы действительно занимаетесь разработкой, то давайте представим, что вы написали плагин для нового типа поста. После его активации и деактивации вам необходимо обновить правила перезаписи для работы постоянных ссылок:
<?php // Register Custom Post Type function portfolio_cpt() { register_post_type( 'portfolio', array( 'labels' => array( 'name' => __( 'Portfolios', 'my-locale' ), 'singular_name' => __( 'Portfolio', 'my-locale' ) ), 'public' => true, 'has_archive' => true, ) ); } add_action( 'init', 'portfolio_cpt', 0 ); function myplugin_activate() { portfolio_cpt(); flush_rewrite_rules(); } register_activation_hook( __FILE__, 'myplugin_activate' ); function myplugin_deactivate() { flush_rewrite_rules(); } register_deactivation_hook( __FILE__, 'myplugin_deactivate' ); ?>
Если использовать ресурсы сервера, то перезапись правил является затратной функцией. Поэтому лучше делать это на время активации и деактивации вашего плагина или темы.
Эта функция, пожалуй, одна из наиболее известных среди всех перечисленных здесь. Но часто разработчики все же забывают о ней.
6. Отслеживание посетителей, которые заходят с мобильных телефонов
Функция wp_is_mobile() помогает определить, кто из пользователей посещает ваш сайт через мобильные телефоны.
Использование функции
<?php if( wp_is_mobile() ) { // echo the "HAVE YOU TRIED OUR AWESOME MOBILE APP?" banner } else { // don't echo the banner } ?>
На этот случай есть один замечательный инструмент Adaptive Web Design. У вас есть возможность удалить ненужные элементы для пользователей, которые используют мобильные телефоны для входа на ваш сайт, или же наоборот добавить, например, баннер для мобильного приложения.
7. Добавление инлайн CSS
Конечно же, у вас возникала необходимость добавить стиль в плагин или тему на WordPress, не так ли? Для добавления внешних файлов каскадных таблиц стилей на WordPress используется функция wp_enqueue_style() и ей подобные. Но она не дает возможность добавить инлайн каскадные таблицы стилей. Для этого существует wp_add_inline_style().
Использование функции
<?php $custom_style_file = get_template_directory_uri() . '/css/custom_style.css'; function custom_styles() { wp_enqueue_style( 'custom-style', $custom_style_file ); $headline_font_weight = get_theme_mod( 'headline-font-weight' ); $custom_style = '.headline { font-weight: ' . $headline_font_weight . '; }'; wp_add_inline_style( 'custom-inline-style', $custom_style ); } add_action( 'wp_enqueue_scripts', 'custom_styles' ); ?>
8. Проверка наличия кода в цикле
Разработчикам тем и плагинов необходимо проверять, используется ли созданный ими код в цикле. Это можно легко сделать с помощью функции in_the_loop().
Использование функции
<?php if( in_the_loop() ) { // do something loop-related } else { // don't do anything or display some kind of error/warning } ?>
Комментарии к записи: 1
Спасибо, пригодится 100%!