我正在尝试获取自定义字段'product_url'
的值,此代码将在functions.php中使用,并且我在一篇文章中使用了简码。自定义字段'product_url'
存在于此信息中,并且不为空。
function metavalue() {
GLOBAL $post;
$meta = get_post_meta($post->ID, 'product_url', true);
echo $meta;
}
add_shortcode('url_short', 'metavalue');
当我使用简码时什么也没显示。 var_dump($meta);
将输出
string(0)“”
。
答案 0 :(得分:0)
您需要将$ postid传递给get_post_meta函数。
function metavalue() {
global $post;
$meta = get_post_meta($post->ID, 'product_url', true);
return $meta;
}
add_shortcode('url_short', 'metavalue');
如何调试:
通过ID作为短代码功能中的静态值。
function metavalue() {
global $post;
$meta = get_post_meta(112, 'product_url', true); // 112 static postid
return $meta;
}
add_shortcode('url_short', 'metavalue');
版本2:带有参数的简码
使用已知属性合并用户属性,并在需要时填写默认值。
对应该被视为调用者支持并以列表形式给出的所有属性。返回的属性将仅包含$ pairs列表中的属性。
如果$ atts列表具有不受支持的属性,则它们将被忽略并从最终返回的列表中删除。
function metavalue($atts) {
$atts = shortcode_atts(
array(
'postid' => 1,
), $atts, 'url_short' );
global $post;
$meta = get_post_meta($atts['postid'], 'product_url', true); // 112 static postid
return $meta;
}
add_shortcode('url_short', 'metavalue');
使用方法:
[url_short postid=1911]