将一段HTML和PHP代码转换为短码

时间:2013-06-24 作者:user34335

代码为

<div class="huili-relevant-left">
                    <a href="<?php echo get_post_meta($post->ID,"taobao_value",true);?>" hidefocus="true" target="_blank" class="btn-buy js-log " data-log="page=p-huihui-discount-detail&type=buy">
                        <b>¥<?php echo get_post_meta($post->ID,"price_value",true);?></b>
                        <i>buy</i>
                    </a>
                </div>
有两个自定义字段taobao_value and price_value现在我想成为一个菜鸟请帮帮我

1 个回复
SO网友:fuxia

当您想将代码段转换为短代码时,必须返回字符串。您不能使用echo 或者以任何其他方式打印任何内容。

此外,始终转义数据,并检查是否确实存在值。

我使用了HEREDOC syntax 这里,因为它很容易阅读:

add_shortcode( \'taobao\', \'taobao_shortcode\' );

function taobao_shortcode()
{
    $taobao = esc_attr( get_post_meta( $post->ID, "taobao_value", true ) );
    $price  = esc_html( get_post_meta( $post->ID, "price_value", true ) );

    if ( ! $taobao or ! $price )
        return;

    return <<<SHORTCODE
    <div class="huili-relevant-left">
        <a href="$taobao" 
            hidefocus="true" 
            target="_blank" 
            class="btn-buy js-log" 
            data-log="page=p-huihui-discount-detail&type=buy"
        >
            <b>¥ $price</b>
            <i>buy</i>
        </a>
    </div>
SHORTCODE;
}
现在,您可以使用将值插入到帖子中[taobao].

结束

相关推荐

Shortcode of a function

我得到了这个函数,我想将“foreach”的contents divs作为return。我该怎么做?<?php $args = array( \'numberposts\' => 6, \'post_status\'=>\"publish\",\'post_type\'=>\"post\",\'orderby\'=>\"post_date\"); $postslist = get_posts( $args ); fo