如何检查帖子是否有元数据并按功能显示?
我有帖子类型的投资组合和元字段(_wi_next-script-part和_wi_prev-script-part)
function wi_next_prev_part_links($content) {
global $wp_query;
$postid = $wp_query->post->ID;
if ( is_singular( 'portfolio' ) ) {
if ( get_post_meta( $postid, '_wi_prev-script-part', true ) ) {
$prev_script_part = get_post_meta( $postid, '_wi_prev-script-part', true );
$content .= '<a href="'. get_the_permalink($prev_script_part) .'" class="">← Prev Part Link</a>';;
}
if ( get_post_meta( $postid, '_wi_next-script-part', true ) ) {
$next_script_part = get_post_meta( $postid, '_wi_next-script-part', true );
$content .= '<a href="'. get_the_permalink($next_script_part) .'" class="">Next Part Link →</a>';
}
}
return $content;
}
add_filter ('the_content', 'wi_next_prev_part_links', 0);
答案 0 :(得分:1)
有两种方法可以做到这一点。一种是检查元键的值,一种是检查元键是否存在。
检查值
如get_post_meta documentation中所述,如果您尝试访问的元键不存在,函数将返回空字符串或空数组。由于空字符串和空数组都是假的,您可以使用简单的if
语句来检查元键是否具有有效的元数据:
if ( get_post_meta( $postid, '_wi_prev-script-part', true ) )
{
//Do something
}
检查密钥
但是,在某些情况下,空字符串被视为有效值。如果您的代码将空字符串视为理想值,则需要检查元键本身是否存在。我们可以使用get_post_custom_keys函数:
来实现if( in_array( '_wi_prev-script-part', get_post_custom_keys($postid) ) )
{
//Do something
}