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等)结合起来以达到类似效果的最佳方法是什么?
最合适的回答,由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"]\');
一个快捷码将处理所有自定义字段。只需将所需字段作为属性(参数)传入即可。