组合类似的短码功能?

时间:2015-08-28 作者:thebded333

function customfield_1_shortcode( $atts ) {

            if ( get_post_meta( get_the_ID(), \'customfield1\', true ) ) {
        $customfield = get_post_meta( get_the_ID(), \'customfield1\', true );

    return "html stuff";
}
add_shortcode( \'customfield_1\', \'customfield_1_shortcode\' );

function customfield_2_shortcode( $atts ) {

            if ( get_post_meta( get_the_ID(), \'customfield2\', true ) ) {
        $customfield = get_post_meta( get_the_ID(), \'customfield2\', true );

    return "html stuff";
}
add_shortcode( \'customfield_2\', \'customfield_2_shortcode\' );
?>
我可以使用[customfield\\u 1]输出customfield1内容,使用[customfield\\u 2]输出customfield2。将这两个或多个功能(customfield\\u 3、customfield\\u 4等)结合起来以达到类似效果的最佳方法是什么?

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

我不知道你到底想做什么,但可能是这样的:

function customfields_shortcode( $atts ) {
  if (!empty($atts[\'field\']) && get_post_meta( get_the_ID(), $atts[\'field\'], true ) ) {
    $customfield = get_post_meta( get_the_ID(), $atts[\'field\'], true );
    return "custom field >> $customfield << custom field";
  }
}
add_shortcode( \'mycustomfields\', \'customfields_shortcode\' );

echo do_shortcode(\'[mycustomfields field="customfield_1"]\');
一个快捷码将处理所有自定义字段。只需将所需字段作为属性(参数)传入即可。

相关推荐

SHORTCODE_ATTS()中的$ATTS参数是什么?

这个WordPress developers reference page for shortcode_atts() 国家:$atts(array)(必选)用户在shortcode标记中定义的属性。但我不理解这个定义。例如,在WP Frontend Profile 插件:$atts = shortcode_atts( [ \'role\' => \'\', ], $atts ); 据我所知,shortcode\