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