【问题标题】:wordpress: A way to execute shortcode when button is clickedwordpress:单击按钮时执行简码的方法
【发布时间】:2016-06-24 22:05:07
【问题描述】:

我是 wordpress 新手,在使用短代码时遇到了一些问题: 我试图在加载内容时执行短代码(gridfx),实际上是在单击选项卡并且选项卡区域可见(短代码内容应该去的地方)时。我是这样实现的:

jQuery(document).ready(function() {
    jQuery('#docu').click(function() {
        <?php 
        $short = '[gridfx theme="light" posttypes="product" postids="'.$postids .'" include_terms=75,70,72,76,84,223,225,221,219,194,192,193,191 single_show_content=9 show_overlay_title_v2=0 show_overlay_title=0 sortmenu=0 instantsearch=0 columns=3 items_container_width=100 excerpt_below_title=15]'; 
        $sh = do_shortcode($short); ?>
        jQuery('.short').text('<?php echo $sh ?>');

    });

});

但是 Firefox 现场刷新的结果是这样的: jQuery('.short').text('

')}
结果以错误的方式显示(html已损坏)。 所以短代码是在侧载上执行的,而不是在点击事件上。有没有办法做到这一点? 我要问的原因是从不可见区域中的简码加载内容会导致简码的结果不显示或仅以 1px 高度显示。 (在我的情况下)。所以实际上我是在选项卡窗格中执行短代码,基本上当点击 tabnav 时,似乎短代码是在侧面加载而不是在 tabpane 显示时执行的。 我需要一些建议,请! 非常感谢! jimmi4u

【问题讨论】:

  • 我认为这样行不通……为什么?因为短代码是一个类似 php 的函数,并且在页面加载到“点击”事件后,您无法在不重新加载的情况下执行某些 php 函数。您需要使用 wordpress Ajax 来执行此操作。这就是我的想法……也许我错了。
  • 感谢您的评论!是的,我听说过;)但是我不能定义短代码的执行时间吗?我想可能是从javascript调用执行短代码的php函数。你怎么看?
  • 当然你可以通过jQuery/ajax触发一个do_shordcode('[my_shortcode]')嵌入在一个PHP Ajax wordpress函数调用的函数中。一切皆有可能或几乎:)

标签: jquery wordpress shortcode


【解决方案1】:

您正在使用.text( ... ) 添加内容。但这会删除所有 html。您可能需要添加斜线

jQuery('.short').html('<?php echo addslashes($sh); ?>');

如果这不起作用,控制台内部是否有错误?

【讨论】:

  • 您好,感谢您的评论!我也用 html 尝试过,但结果是相似的。我认为 LoicTheAztec 是对的,但我必须弄清楚插件的回调函数,而且所有值都不是那么容易......斜线在那里。还有其他想法吗?
  • 嗨,我在添加斜杠方面更进一步,并且收到以下错误:[code] SyntaxError: unterminated string literal jQuery('.short').html(' [/code] 似乎就像短代码没有返回正确的 html?我应该 json_encode 吗?谢谢!
【解决方案2】:

将您的&lt;?php echo $sh ?&gt; 分配给一个变量 试试这个:

var sh = '<?php echo $sh ?>';
$('.short').html(sh);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    • 1970-01-01
    • 2019-08-25
    • 1970-01-01
    • 2019-02-13
    • 1970-01-01
    相关资源
    最近更新 更多