在短码中回显某些内容

时间:2021-06-12 作者:Michael Fynbo Kjergaard

我是frontender,所以我不太习惯使用php。但我需要解决一些问题。我在单个产品模板中添加了一个短代码,在这个短代码中,我需要回显产品的slug。

我尝试了很多事情,但都没能成功。

<?php 
    global $post;
    $post_slug = $post->post_name;
    echo $post_slug;
    echo do_shortcode(\'[sc name=" I NEED TO ECHO THE POST SLUG HERE "]\');
?>
也许你们中的一些人可以帮助我:)

向你问好,迈克尔

1 个回复
SO网友:Fabian Mossberg

有几种方法可以做到这一点:

使用double quotes

不要忘记转义字符串中的双引号。

global $post;
echo do_shortcode("[sc name=\\"$post->post_name\\"]");

使用sigle quotes

global $post;
echo do_shortcode("[sc name=\'$post->post_name\']");

使用sprintf

global $post;
echo do_shortcode(
  sprintf(\'[sc name="%s"]\', $post->post_name)
);

使用wp_sprintf

global $post;
echo do_shortcode(
  wp_sprintf(\'[sc name="%s"]\', $post->post_name)
);

使用heredoc

do_shortcode(
    <<< EOF
[add_to_cart_url id="$post->post_name"]
EOF
);