【问题标题】:Wordpress Custome Meta Box for Shortcode用于简码的 Wordpress 自定义元框
【发布时间】:2017-10-31 02:53:50
【问题描述】:

我创建了一个元框来存储联系表单 7 的短代码。元框工作正常,问题是当我使用 do_shortcode 输出短代码时,我在 shotcode 中显示“404 Not Found”。示例 [contact-form-7 "404 NOT FOUND"]。我知道原始简码有效, do_shortcode('[contact-form-7 id="59" title="Contact Form"]');工作正常。我的以下代码不起作用,请帮助。

<?php
    if(get_post_meta( get_the_id(), 'shortcode_input', true )) {
        $contact_shortcode = get_post_meta( get_the_ID(), 'shortcode_input', TRUE );
    }
    echo do_shortcode($contact_shortcode);

?>

【问题讨论】:

  • 看起来你有错字。

标签: php wordpress shortcode contact-form-7 meta-boxes


【解决方案1】:

看起来您的代码中有错字,由于get_the_id(),您的 IF 条件永远不会为真,它应该是 get_the_ID()

  <?php
    if(get_post_meta( get_the_ID(), 'shortcode_input', true )) {
        $contact_shortcode = get_post_meta( get_the_ID(), 'shortcode_input', TRUE );
    }
    echo do_shortcode($contact_shortcode);

?>

我还建议在 IF 条件中移动 echo 语句,这样只有当你有简码时才回显简码,即

     <?php
            if(get_post_meta( get_the_ID(), 'shortcode_input', true )) {
                $contact_shortcode = get_post_meta( get_the_ID(), 'shortcode_input', TRUE );
                echo do_shortcode($contact_shortcode);
            }


        ?>

【讨论】:

  • 不,不是这样。结果是一样的。我仍然得到 [contact-form-7 "404 NOT FOUND"] 作为输出。 if 语句按原样工作。分配了变量,如果我只是输出变量,我会得到正确的存储短代码。当我在 do_shortcode() 中使用该变量时,问题就出现了。
  • 你能 var_dump 你的帖子元的价值,看看你是否有价值被保存吗? $cf7_code = get_post_meta(get_the_ID(), 'shortcode_input', true );然后 var_dump($cf7_code);看看你是否分配了价值,它是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多