如何以简码显示自定义字段(变量)

时间:2019-09-05 19:11:21

标签: php wordpress

我想让一个简码显示一个值,该值是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');
?>

1 个答案:

答案 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');