Шорткод wordpress

Здравствуйте уважаемые начинающие программисты.

Что такое шорткод (shortcode)?

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

А по простому — это маленький php код, в который можно «засунуть» любой html элемент, вставить всё это в файл functions.php, а затем с помощью совсем маленькой метки, выводить этот элемент в любой части контента.

Мало того. Этому html элементу, можно задать class, и в файле style.css сделать любое внешнее оформление.

Представляете перспективы?

Можно каждую статью какой либо рубрики, начинать логотипчиком этой рубрики, и не грузить для этого текст лишней картинкой.

Достаточно будет один раз вставить её в функцию шорткода, а затем в начале каждой статьи рубрики, ставить соответствующую метку, и WordPres динамически подгрузит туда эту картинку.

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

Вот эти метки и имеют название «шорткод».

Теперь давайте смотреть, как это чудо выглядит, и как работает.

function main_cod() {
return'Привет';
}
add_shortcode('shortcod', 'main_cod');

Вот и весь основной код. Разберём по косточкам.

В первой строке — пользовательская функция. Пользовательская — это значит, что название ей Вы придумываете самостоятельно.

Подробнее про то как даются названия, и вообще про функции php можно почитать в статье Функции php.

Во второй строке, в одиночных кавычках, вставляется то, что Вы хотите выводить на страницах сайта.

У меня там просто слово Привет, но вместо него, как я уже говорил, можно вставить любой html элемент. Ну например бегущую строку:

function main_cod() {
return'<marquee>бежим бежим</marquee>';
}
add_shortcode('shortcod', 'main_cod');

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

Сам же он выглядит так:

[shortcod]

Имя у него может быть любым, не обязательно именно shortcod. Желательно, чтоб это имя отображало то, что данный шорткод выводит.

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

В функцию можно прописать и сразу несколько html элементов. Например меню одним тегом не сделаешь.

function main_cod() {
return' <ul class="meny">
   <li class="html"><a href="http://address post">Курс HTML</a>
    <ul> 
     <li><a href="http://address post">Урок 1</a></li> 
     <li><a href="http://address post">Урок 2</a></li>   
     <li><a href="http://address post">Урок 3</a></li>   
     <li><a href="http://address post">Урок 4</a></li>  
    </ul> 
   </li>
</ul>';
}
add_shortcode('shortcod', 'main_cod');

Оформить это меню можно в файле style.css, так как тегам ul и li заданы классы. Но можно прописать стили прямо в теле функции, добавив туда тег style.

function main_cod() {
return' 
<style>
  .meny{
	background: #fdeaa8;
	padding: 2px;
	border-radius: 5px;
	box-shadow: 0px 0px 0px 2px #0ea8f4;
	width: 785px;
	height: 35px;
	}
  .html{
	float: left;
	margin: 3px 3px 3px 3px;
	width: 190px;
	}
</style>
<ul class="meny">
   <li class="html"><a href="http://address post">Курс HTML</a>
    <ul> 
     <li><a href="http://address post">Урок 1</a></li> 
     <li><a href="http://address post">Урок 2</a></li>   
     <li><a href="http://address post">Урок 3</a></li>   
     <li><a href="http://address post">Урок 4</a></li>  
    </ul> 
   </li>
</ul>';
}
add_shortcode('shortcod', 'main_cod');

Код меню я представил не полностью, чтоб не занимать место в статье, только для примера, чтоб понять как работает шорткод, что и является целью этой статьи.

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

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

Теперь несколько примеров со встроенными php функциями. Напомню, что встроенная — это функция уже имеющаяся в языке php, и решающая определённую задачу.

Скрываем часть контента от незарегистрированных пользователей

В файл functions.php, в самый конец вставляется следующий код:

function member_check_shortcode() {
  if ( is_user_logged_in() && !is_null( $content ) && !is_feed() )
   return $content;
   return '';
}
add_shortcode('member', 'member_check_shortcode');

Закрываемый текст оборачивается в конструкцию

[member]Закрываемый фрагмент контента[/member]

Функция member_check_shortcode проверяет регистрацию посетителя Вашего сайта, и в зависимости от этого скрывает или нет выделенный фрагмент контента.

Что и для чего нужно скрывать, я думаю всем понятно. Типичное увеличение подписной базы. А вот для чего нужно следующее действие?

Показываем часть контента только незарегистрированным пользователям

function guest_check_shortcode( $atts, $content = null ) {
 if ( !is_user_logged_in() && !is_null( $content ) && !is_feed() )
    return $content;
    return '';
}
add_shortcode('guest', 'guest_check_shortcode');

Соответственно шорткод будет выглядеть так:

[guest]Показываемая часть контента[/guest]

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

Желаю творческих успехов.

Что такое PHP < < < ◊ > > > Как закрыть сайт на обслуживание без плагина

Запись опубликована в рубрике PHP основы. Добавьте в закладки постоянную ссылку.

Один комментарий на «Шорткод wordpress»

  1. Евгения 25+ говорит:

    Жаль нет кнопок соц.сетей! В кое-то веке хотела поделиться))
    Спасибо за короткое и чёткое объяснение, что такое шоткод 🙂

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *