编写PHP函数并将其传递给字符串

时间:2012-11-15 03:51:20

标签: php wordpress function

我正在构建一个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,这是我第一次尝试编写这样的函数。非常感谢任何帮助!

2 个答案:

答案 0 :(得分: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教程,了解函数和范围。

答案 1 :(得分:0)

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

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

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

test($myFunc);