我想让一个简码显示一个值,该值是Wordpress中的一个自定义字段。在这种情况下,变量为“ prijs”。 我已经在网上尝试了很多解决方案,并且尝试了更多解决方案,但到目前为止还没有运气。谁能帮我 ? 为什么此脚本不显示任何内容?如何显示自定义字段“ prijs”?
<?php
function showdetails_shortcode( $attr, $content = null ) {
return <?php $key="prijs"; echo get_post_meta($post->ID, $key, true); ?>
}
add_shortcode('showdetails', 'showdetails_shortcode');
?>
答案 0 :(得分:0)
该脚本为什么不显示任何内容?
所提供的代码显示了一些语法错误,其中最关键的是在PHP语句中重新调用<?php
。
如果prijs
是放置此短代码的帖子的很好的自定义字段键,则它应该起作用。
function showdetails_shortcode( ) {
$post_id = get_the_ID();
//either output the value or let us know the code is working but the value has not been found
$output = get_post_meta( $post_id, 'prijs', true) ? get_post_meta( $post_id, 'prijs', true) : 'NO CUSTOM VALUE FOUND' ;
return $output;
}
add_shortcode('showdetails', 'showdetails_shortcode');
在回应评论时,这是一个具有两个字段和表格输出的版本,请记住,将有更简洁(更灵活和更简约)的方式来导出变量并为更多字段产生输出。
>function showdetails_shortcode( ) {
$post_id = get_the_ID();
//extract the field values
$field1 = get_post_meta( $post_id, 'prijs', true) ? get_post_meta( $post_id, 'prijs', true) : 'PRIJS NOT FOUND';
$field2 = get_post_meta( $post_id, 'prijs2', true) ? get_post_meta( $post_id, 'prijs2', true) : 'PRIJS2 NOT FOUND';
//prepare html table output
$output = '<table><tbody>';
$output .= '<tr><td>' . $field1 . '</td></tr>';
$output .= '<tr><td>' . $field2 . '</td></tr>';
$output .= '</tbody></table>';
//return the html
return $output;
}
add_shortcode('showdetails', 'showdetails_shortcode');