通过wordpress中的'the_content()'拆分内容

时间:2011-09-01 10:41:21

标签: php wordpress wordpress-plugin wordpress-theming


现在我使用以下插件 - 'shortcoder'允许我使用一个帖子推送我的wordpress网站的整个首页。 以下是我的帖子的结构 -

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

现在这些都是静态的,只包含html和javascript内容。这篇文章使用'the_content()'模板标签显示在我的index.php上。

但是现在我将从其他帖子中提取一些动态内容来代替其中一些短路码,其逻辑将在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 :(得分:0)

您可以创建自己的短代码来调用要运行的脚本。

例如,在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

所以,基本上,你将使用你的插件来获取静态代码和你自己的动态代码短代码=)

我希望这有助于或帮助您朝着正确的方向前进。让我知道!

答案 1 :(得分:0)

这是我使用普通的php爆炸解决我的问题的方法 -

我首先为我的所有短代码添加'〜'分隔符,例如 -

 [Shortcode1]~[Shortcode2]~[Shortcode3]

然后使用以下代码我将短代码分开 -

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

之后,我所做的就是在模板中的正确位置回显所需的变量 -

<?php echo $part[0]; ?>,....