Как вставить шорткоды в тему WordPress?
У меня установлен плагин блокировки контента.
Для блокировки контента я использую этот шорткод:
[wp-like-locker] Ваш заблокированный контент здесь... [/wp-like-locker]
и мне нужно заблокировать каждую запись в моем блоге. Как можно вставить эти шорткоды в тему и заблокировать контент:
Большое-пребольшое спасибо за ваш ответ и уделенное время!
Вы можете встроить шорткоды прямо в тему, используя функцию do_shortcode
.
http://codex.wordpress.org/Function_Reference/do_shortcode
echo do_shortcode('[wp-like-locker] Ваш закрытый контент здесь... [/wp-like-locker]');
Скорее всего, вам захочется заменить жестко прописанный "Ваш закрытый контент здесь..." на функцию, которая получает контент из редактора, например the_content
http://codex.wordpress.org/Function_Reference/the_content
Это может выглядеть так:
// цикл
$content = get_the_content();
echo do_shortcode('[wp-like-locker]' . $content . '[/wp-like-locker]');

Будет быстрее и чище написать функцию для этого и поместить её в файл functions.php. Вот как это может выглядеть (не тестировано):
add_action( 'the_content', 'wpse49094_lock_content' );
function wpse49094_lock_content( $content ) {
if( in_the_loop() ) {
$content = do_shortcode( 'do_shortcode(\'[wp-like-locker]\'' . $content . '\'[/wp-like-locker]\')' );
return $content;
}
}

Вы можете использовать функцию do_shortcode() для выполнения вашего шорткода.
Вы можете поместить следующий код в файл single.php вашей темы WordPress. Это применится ко всем записям, использующим шаблон по умолчанию.
<?php
get_template_part( 'content', 'single' );
echo do_shortcode('[wp-like-locker]');
echo "Ваш заблокированный контент";
echo do_shortcode('[/wp-like-locker]');
?>

Этот код неверен. Ознакомьтесь со страницей Кодекса do_shortcode()
, чтобы узнать, как правильно обрабатывать открывающие-закрывающие шорткоды.
