【问题标题】:Insert shortcode插入简码
【发布时间】:2026-02-07 13:45:01
【问题描述】:

我正在尝试编写代码来帮助我在页脚中插入短代码。 我成功了:

function insert_scode() {
 echo do_shortcode( '[products limit="4" columns="4" products ids="231,230,123,118"]');

}
add_action( 'get_footer', 'insert_scode', 10 );

现在,我想让插入的内容具有响应性,并给它一个类,以便我可以自定义它。 这不再起作用了:

    function insert_scode() {
 echo do_shortcode( '[products limit="4" columns="4" products ids="231,230,123,118"]');
 <div class="scinsert" >
  <?php echo $output; ?>
</div>
   <script>
      <html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
       </head>
   </html>
</script>
}
add_action( 'get_footer', 'insert_scode', 10 );

请帮忙。

【问题讨论】:

    标签: php wordpress woocommerce shortcode


    【解决方案1】:

    您没有正确关闭和打开 PHP 标记。
    来自您的代码。

    function insert_scode() {
     echo do_shortcode( '[products limit="4" columns="4" products ids="231,230,123,118"]');
     <div class="scinsert" >
    

    您只需调用 HTML 而不关闭 PHP 标记 ?&gt;。这应该会显示错误。

    要解决此问题,请在发送 HTML 之前关闭 PHP 标记。

    // I assume that you already have PHP open tag <?php.
    function insert_scode() {
     echo do_shortcode( '[products limit="4" columns="4" products ids="231,230,123,118"]');
    ?>
     <div class="scinsert" >
      <?php echo $output; ?>
    </div>
       <script>
          <html>
    <head>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
           </head>
       </html>
    </script>
    <?php
    }
    add_action( 'get_footer', 'insert_scode', 10 );
    

    【讨论】:

    • 是的,你是对的。但它仍然不起作用。产品已插入,但没有响应。班级出现在他们之后。我试过了,但还是不行。
    • class scinsert { function insert_scode() { echo do_shortcode('[products limit="4" columns="4" products ids="7000,6955,6946,6901"]'); } } add_action('get_footer', 'insert_scode', 10); $serco=新的 scinsert; $serco->insert_scode(); ?>
    • 响应式是关于 HTML 和 CSS。
    • 从您的代码中,您正试图发送应该在&lt;head&gt; 内的东西与应该在&lt;body&gt; 内的东西混合。 &lt;html&gt; 应该在主题中,在顶部。未使用 &lt;script&gt; 包裹。你的 HTML 真的很乱。这是响应&lt;meta&gt; 元素的错误方式。