Разделение содержимого, полученного через 'the_content ()' в WordPress - PullRequest
0 голосов
/ 01 сентября 2011


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

 [shortcode 1]
 [shortcode 2]
 [shortcode 3]
 [shortcode 4]
 [shortcode 5]
 [shortcode 6]

. Сейчас все они статические и содержат только html и javascript контент.Это сообщение отображается в моем index.php с помощью тега шаблона 'the_content ()'.

Но теперь я буду извлекать динамический контент из других своих сообщений вместо некоторых из этих шорткодов, логика которых будетжестко запрограммирован в файле index.php.Например, .-

 [shortcode 1] static
 [shortcode 2] static
 [shortcode 3] dynamic
 [shortcode 4] static
 [shortcode 5] dynamic
 [shortcode 6] static

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

Я хочу как-то разбить содержимое, поступающее через 'the_content ()', на соответствующие статические разделы.

Извините задлинный пост, но я надеюсь, что кто-то может найти решение.

Ответы [ 2 ]

0 голосов
/ 12 октября 2011

Вот как я решил свою проблему, используя обычный php explode-

Сначала я добавил разделитель '~' для всех своих коротких кодов, например -

 [Shortcode1]~[Shortcode2]~[Shortcode3]

Затем, используя следующий код, я разделил шорткоды-

  <?php
    ob_start();
    the_content();
    $content = ob_get_clean();
    $part = explode('~', $content);
    ?>

После этого все, что я делал, отображало необходимые переменные в правильных местах шаблона-

<?php echo $part[0]; ?>,....
0 голосов
/ 30 сентября 2011

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

Например, в вашем functions.php файле вы можете добавить что-то вроде этого:

<?php 
function my_shortcode_callback($atts){

   $name = attr('name');

   switch($name){
      case 'script_1':
         // run code for script_1, maybe through a custom function
         script_1();
      break;
      case 'script_2':
         // run code for script_2, maybe through another custom function
         script_2();
      break;

   }
}

add_shortcode('my_shortcode', 'my_shortcode_callback');
?>

Теперь в своем редакторе сообщений вы можете добавить свой собственный шорткод, переплетенный с плагином, например:

 [shortcode 1] static
 [shortcode 2] static
 [my_shortcode name='script_1'] dynamic
 [shortcode 4] static
 [my_shortcode name='script_2'] dynamic
 [shortcode 6] static

Так что, в основном, вы будете использовать свой плагин для статического кода и свой собственный шорткод для динамического кода =)

Я надеюсь, что это помогает или направляет вас в правильном направлении. Дайте мне знать!

...