我正在尝试创建一个简码,除了一个部分外,其他所有东西都运行良好:
$pdflink = get_post_meta( get_the_ID(), 'wp_custom_attachment', true );
$pdf = $pdflink['url'];
由于某种原因,当我调用$ pdf时出现错误(非法字符串偏移量'url'),我在页面模板中使用了类似的代码,但现在我希望它是一个简码,以便可以在其他地方使用它。 / p>
function quick_info_shorty( $atts ) {
extract( shortcode_atts( array(
'id' => 17 // Add the *default category id
), $atts ) );
$posts = get_posts( array(
'posts_per_page' => -1,
'post_type' => 'casestudy',
'post_status' => 'publish',
'cat' => $id,
) );
$return = '';
$return .= '<div class="row text-center">';
foreach ( $posts as $post ) {
$imageid = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full' );
$featimage = $imageid['0'];
$pdftitle = get_the_title($post->ID);
$pdflink = get_post_meta( get_the_ID(), 'wp_custom_attachment', true );
$pdf = $pdflink['url'];
$return .= '<div class="col-md-4 grey_bg">
<a href="' . $pdf . '" target="_blank"><h2>' . $pdftitle . '</h2></a>
<a href="' . $pdf . '" target="_blank"><img src="' . $featimage . '" /></a>
</div>';
}
$return .= '</div>';
return $return;
}
add_shortcode( 'case_studies', 'quick_info_shorty' );
答案 0 :(得分:1)
get_the_ID()
只能在循环中使用,因此请使用$post->ID
$pdflink = get_post_meta( $post->ID, 'wp_custom_attachment', true );
答案 1 :(得分:0)
$pdflink = get_post_meta( get_the_ID(), 'wp_custom_attachment', fasle );
$pdf = $pdflink['url'];
如果要将单个值作为返回值,请将$ single设置为true;如果结果为数组,则将$ single设置为false
https://developer.wordpress.org/reference/functions/get_post_meta/