WordPress для меня как большой океан. У него большой набор отличных API, потрясающая функциональность, и вы можете создавать практически любые веб-сайты, какие только можете себе представить.
Но в этом большом океане как системе управления контентом, есть некоторые крошечные кусочки кода, которые упускаются из виду. В этом уроке мы кратко рассмотрим восемь интересных функций WordPress.
Этот, надеюсь, будет интересным уроком для большинства из вас. Я должен признать, что я был поражен некоторыми функциями, говоря: «Есть функция для этого?»
Некоторые из них могут быть не такими интересными, как другие, но я уверен, что вам понравится читать эту статью и узнавать об этих скрытых жемчужинах !
Скрытые адреса электронной почты в вашем контенте
Вам когда-нибудь приходилось делиться адресом электронной почты в своем блоге или на сайте WordPress? Скорее всего, у вас есть, и если вы когда-нибудь заботились о том, чтобы вас не поймали спам-роботы, которые просматривают в Интернете адреса электронной почты, номера телефонов и тому подобное, вы искали решение, чтобы скрыть адреса электронной почты от этих крошечных злых роботов.
Я знаю, что у меня есть, и мало что я знал, для него уже была базовая функция WordPress: antispambot()
.
использование
Использование функции довольно просто:
1
2
3
4
5
|
<?php
$my_email_address = «[email protected]»;
$my_email_address_cloaked = antispambot( $my_email_address );
echo $my_email_address_cloaked;
?>
|
Но, конечно, вы не можете использовать PHP в своем контенте (если вы не используете плагин для этой цели). Чтобы использовать эту функцию в своем контенте, вы можете использовать небольшой шорткод, подобный приведенному ниже:
01
02
03
04
05
06
07
08
09
10
|
<?php
function antispambot_sc( $atts ) {
extract( shortcode_atts( array(
’email’ => »
), $atts ) );
return antispambot( $email );
}
add_shortcode( ‘antispambot’, ‘antispambot_sc’ );
// Usage: [antispambot email=»[email protected]»]
?>
|
Используя приведенный выше шорткод, вы можете скрывать адреса электронной почты в любом месте своих сообщений. Аккуратно, верно?
Разделение частей до и после тега More
Это может быть моим любимым среди всех этих драгоценных камней : get_extended()
позволяет буквально разделить две части, до и после <!--more-->
.
использование
Использование тоже довольно просто. Допустим, вы находитесь в файле single.php
и собираетесь показывать рекламу между вступлением и остальной частью статьи. Вот как вы делаете The Loop:
01
02
03
04
05
06
07
08
09
10
11
12
|
<?php
while( have_posts() ) : the_post();
$content_parts = get_extended( get_the_content() );
echo ‘<h1 class=»post-title»>’ .
echo ‘<p class=»intro»>’ .
echo ‘<!— Paste your ad code here.
echo ‘<div class=»article»>’ .
endwhile;
?>
|
Отличное, но простое решение, не требующее дополнительного кода!
Исправление слова «WordPress» в автоматическом режиме
Вот элемент «противоречия» этой статьи: очень обсуждаемая capital_P_dangit()
.
Как вы знаете, слово «WordPress» должно быть написано заглавной буквой W и заглавной буквой P. Эта крошечная функция «исправляет» неправильную прописную букву слова.
использование
1
2
3
4
5
|
<?php
$text = «WordPress is awesome!»;
$corrected_text = capital_P_dangit( $text );
echo $corrected_text;
?>
|
Выглядит как забавная маленькая функция, но проблема в том, что WordPress Core настроен на принудительное выполнение этой функции в заголовке, содержании и комментариях. Джастин Тэдлок написал об этом около 4 лет назад , упомянув, что функция ломает URL. К счастью, проблема была исправлена в версии 3.0.1, но я вижу, что она все еще ломает вещи.
Например, если вы неправильно написали WordPress в примере кода, и для кода важен маленький «p», он нарушает код.
К счастью, решение проблемы также простое. Перейдите в файл functions.php
вашей темы (или создайте новый плагин для этой проблемы) и вставьте следующий код:
1
2
3
4
5
|
<?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 );
?>
|
Мое личное мнение: Да, я думаю, что использование слова «WordPress» с заглавной буквы чрезвычайно важно, и меня раздражает каждый раз, когда я вижу людей, пишущих «WordPress», но WordPress не должен заставлять людей отображать слово правильно.
Снятие шорткодов!
В некоторых случаях необходимо пропустить шорткоды текста: вы можете использовать часть содержимого для предварительного просмотра «Следующая публикация», возможно, вы переключились на новую тему и не хотите отображать тексты шорткодов которые больше не бегают и так далее.
Когда это время наступит, strip_shortcodes()
станет вашим другом.
использование
В Кодексе есть очень хороший пример. Допустим, вам нужно удалить шорткоды на домашней странице, но разрешить их запуск на других страницах контента.
Вот как вы должны использовать strip_shortcodes()
:
1
2
3
4
5
6
7
8
|
<?php
function remove_shortcode_from_index( $content ) {
if ( is_home() )
$content = strip_shortcodes( $content );
return $content;
}
add_filter( ‘the_content’, ‘remove_shortcode_from_index’ );
?>
|
Быстро и просто.
Обновление правил перезаписи
Если вы являетесь разработчиком плагинов (или разработчиком тем, которым по какой-то причине необходимо проникнуть на территорию плагинов ) и вам нужно добавить правило перезаписи для своей функции, вы должны сказать своим пользователям обновить правила перезаписи, посетив страницу на странице параметров Постоянные ссылки и нажав кнопку «Сохранить изменения» без каких-либо изменений, или вы можете сделать свой код для очистки самих правил перезаписи с помощью функции flush_rewrite_rules()
!
использование
Продолжая приведенный выше пример, допустим, вы написали плагин, который вводит новый пользовательский тип записи. После активации и деактивации необходимо обновить правила перезаписи, чтобы постоянные ссылки вашего пользовательского типа работали:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
<?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’ );
?>
|
Кодекс выражает, что очистка правил перезаписи является дорогой функцией с точки зрения использования ресурсов сервера. Вот почему мы должны делать это только при активации и деактивации вашего плагина или темы.
Эта, пожалуй, самая известная функция среди этих скрытых жемчужин, но я понял, что многие разработчики WordPress, похоже, забывают об этой полезной маленькой функции.
Если вы имеете дело с какими-либо правилами переписывания (например, если вы создаете новый тип записи или таксономию), вам следует помнить об этой функции.
Обнаружение мобильных посетителей вашего сайта
Как и strip_shortcodes()
, wp_is_mobile()
также легко объяснить: он позволяет обнаруживать пользователей, которые используют мобильные устройства для подключения к вашему веб-сайту.
использование
1
2
3
4
5
6
7
|
<?php
if( wp_is_mobile() ) {
// echo the «HAVE YOU TRIED OUR AWESOME MOBILE APP?»
} else {
// don’t echo the banner
}
?>
|
Идеальный инструмент адаптивного веб-дизайна , если вы спросите меня. Кроме того, вы можете удалить некоторые элементы, которые не имеют отношения к мобильным пользователям, или добавить такие, как баннер для вашего мобильного приложения.
Постановка в очередь CSS
Всегда нужно было включить переменную, встроенный стиль для вашего плагина или темы? Конечно ты сделал! Постановка в очередь внешних CSS-файлов с помощью функции WordPress ‘ wp_enqueue_style()
(и ее компаньонов) довольно удобна, но ей не хватает функциональности для включения встроенных стилей CSS.
Ну, по крайней мере, я так думал, прежде чем wp_add_inline_style()
функцию wp_add_inline_style()
.
использование
01
02
03
04
05
06
07
08
09
10
11
|
<?php
$custom_style_file = get_template_directory_uri() .
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: ‘ .
wp_add_inline_style( ‘custom-inline-style’, $custom_style );
}
add_action( ‘wp_enqueue_scripts’, ‘custom_styles’ );
?>
|
Честно говоря, я давно не знал эту функцию. Это могло бы сэкономить мне много времени, если бы я знал это раньше.
Проверка, если вы в петле
Разработчикам тем и плагинов может потребоваться проверить, будет ли их код запускаться в цикле или нет. Как следует из названия, in_the_loop()
дает ответ легко.
использование
1
2
3
4
5
6
7
|
<?php
if( in_the_loop() ) {
// do something loop-related
} else {
// don’t do anything or display some kind of error/warning
}
?>
|
Вероятно, самый простой для использования среди функций в этой статье, наряду с wp_is_mobile()
.
Заворачивая все
Как вы можете видеть из того, что мы рассмотрели в статье, в ядре WordPress и Справочнике по функциям в Кодексе есть несколько довольно полезных функций. Возможно, вы слышали о некоторых из них, но держу пари, что вы не знали о них все, верно?
Вы знаете какие-нибудь основные функции WordPress, подобные этим? Поделитесь своими знаниями с нами, комментируя ниже!
И если вам понравилась статья, не забудьте поделиться ею с друзьями!