-2

我正在构建一个 Wordpress 主题,并正在显示自定义帖子类型的自定义字段。而不是写很多次:

<?php if(get_post_meta($post->ID, 'custom_item', true)){ echo $post_meta_data['custom_item'][0]; } ?>

我不能写一个函数来缩短这个过程吗?我将传递给它一个变量的东西,它可以插入到函数中。这是我到目前为止没有运气的情况:

<?php 
    function display_meta($custom_meta) {
    if(get_post_meta($post->ID, $custom_meta, true)){ echo $post_meta_data[$custom_meta][0]; }} 
?>

然后我希望能够为每个字段做这样的事情:

<?php echo display_meta('custom_item') ?>

我对 PHP 还比较陌生,这是我第一次尝试编写这样的函数。任何帮助是极大的赞赏!

4

2 回答 2

2

看起来您还需要将 $post 和 $post_meta_data 传递给函数。

<?php 
function display_meta($custom_meta, $post, $post_meta_data) {
    if(get_post_meta($post->ID, $custom_meta, true)){ 
        echo $post_meta_data[$custom_meta][0]; 
    }
} 
?>

并且您正在尝试(错误地)进行两次回声。像这样的东西会更好

<?php display_meta('custom_item', $post, $post_meta_data) ?>

您应该做一些简单的 php 教程并了解函数和范围。

于 2012-11-15T04:04:29.803 回答
0

我相信你在谈论 php5.3 上可用的闭包

$myFunc = function()
{
  return 1;
};

function test($callback)
{
   if(is_callable($callback))
   {
      $callback();
   }
}

test($myFunc);
于 2012-11-15T03:55:53.303 回答