【问题标题】:Splitting the content got through 'the_content()' in wordpress在wordpress中拆分通过'the_content()'获得的内容
【发布时间】:2011-10-12 13:42:20
【问题描述】:


现在我正在使用以下插件 - '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()”的内容分成适当的静态部分。

抱歉,这篇文章很长,但我希望有人能提出解决方案。

【问题讨论】:

    标签: php wordpress wordpress-theming


    【解决方案1】:

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

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

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

    我希望这可以帮助您或使您朝着正确的方向前进。告诉我!

    【讨论】:

      【解决方案2】:

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

      我首先为我的所有短代码添加了“~”分隔符,例如 -

       [Shortcode1]~[Shortcode2]~[Shortcode3]
      

      然后使用下面的代码,我将简码分开-

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

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

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

      【讨论】:

        猜你喜欢
        • 2021-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-28
        • 1970-01-01
        • 2013-01-19
        • 1970-01-01
        相关资源
        最近更新 更多