Как вставить шорткоды в тему WordPress?

15 апр. 2012 г., 20:47:25
Просмотры: 19.7K
Голосов: 1

У меня установлен плагин блокировки контента.

Для блокировки контента я использую этот шорткод:

[wp-like-locker] Ваш заблокированный контент здесь... [/wp-like-locker]

и мне нужно заблокировать каждую запись в моем блоге. Как можно вставить эти шорткоды в тему и заблокировать контент:

Большое-пребольшое спасибо за ваш ответ и уделенное время!

0
Все ответы на вопрос 3
1

Вы можете встроить шорткоды прямо в тему, используя функцию 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]');
15 апр. 2012 г. 21:26:34
Комментарии

...или просто вызовите функцию, привязанную к этому шорткоду, напрямую и передайте ей $content; нет необходимости в дополнительной нагрузке от do_shortcode...

onetrickpony onetrickpony
9 мая 2012 г. 00:13:02
0

Будет быстрее и чище написать функцию для этого и поместить её в файл 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;
    }
}
8 мая 2012 г. 23:50:25
1

Вы можете использовать функцию do_shortcode() для выполнения вашего шорткода.

Вы можете поместить следующий код в файл single.php вашей темы WordPress. Это применится ко всем записям, использующим шаблон по умолчанию.

   <?php 
    get_template_part( 'content', 'single' ); 

echo do_shortcode('[wp-like-locker]');

echo "Ваш заблокированный контент";

echo do_shortcode('[/wp-like-locker]');

?>
15 апр. 2012 г. 21:26:35
Комментарии

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

mrwweb mrwweb
8 мая 2012 г. 23:51:09