我有以下代码,当我调用<?php compare_update ?>
时,我得到一个PHP错误,告诉我我缺少参数1.查看代码可以有人告诉我参数1的变量应该是什么?
function compare_update( $post_id ) {
//Assign Posts to Variables
$start = $_POST['_date_start'];
$end = $_POST['_date_end'];
//Parse Start Date
if($start):
$start = explode('-', $start);
$start = mktime($hour, $_POST['_date_minute'], 0, $start[0], $start[1], $start[2]);
$compare = date('ymd', $start);
endif;
//Parse End Date
if($end):
$today = date('ymd');
$end = explode('-', $end);
$end = mktime($hour, $_POST['_date_minute'], 0, $end[0], $end[1], $end[2]);
// If today's date is within the date range of an event that spans multiple days & the event is NOT YET PAST
if ((date('ymd',$start) < date('ymd',$end)) && (date('ymd',$end) >= $today) ){
// and the start date is before today
if (date('ymd',$start) < $today){
$compare = date('ymd'); //Overwrite start date $compare
} else {
$compare = date('ymd', $start);
}
} else {
$compare = date('ymd', $start);
}
endif;
//Check if values exist and then update
if($end):
update_post_meta( $post_id, '_date_end', $end);
else:
if($start)update_post_meta( $post_id, '_date_end', $start);
endif;
if($start)update_post_meta( $post_id, '_date_start', $start);
if($compare)update_post_meta( $post_id, '_date_compare', $compare);
if($echo): echo $compare; else: return $compare; endif;
}
答案 0 :(得分:2)
你的功能说:
function compare_update( $post_id ) {
然而你并没有用任何论据来称呼它,比如:
compare_update('100'); // Or some number/id/whatnot,
// more than likely a $_POST['id']
// or $_GET['id'] variable
当您在PHP中使用参数创建函数,并且您没有在参数列表中给出默认值时,您必须在函数调用中为需要输入的每个参数提供相应的变量。
// $post_id is an argument
function compare_update( $post_id ) {
... your code ...
}
所以现在你已经创建了一个函数,它需要在函数调用中传递一个参数,然后该函数可以在函数中使用。
$post_id = $_POST['id'];
compare_update($post_id); // This is passing a parameter
例如,你在功能结束时使用它:
//Check if values exist and then update
if($end):
update_post_meta( $post_id, '_date_end', $end);
else:
if($start)update_post_meta( $post_id, '_date_end', $start);
endif;
if($start)update_post_meta( $post_id, '_date_start', $start);
if($compare)update_post_meta( $post_id, '_date_compare', $compare);
if($echo): echo $compare; else: return $compare; endif;
此外,您的代码格式令人困惑。例如,上面的代码可以是:
//Check if values exist and then update
if ($end) {
update_post_meta( $post_id, '_date_end', $end);
} else {
if ($start) {
update_post_meta( $post_id, '_date_end', $start);
}
}
if ($start) {
update_post_meta( $post_id, '_date_start', $start);
}
if ($compare) {
update_post_meta( $post_id, '_date_compare', $compare);
}
if ($echo) {
echo $compare;
} else {
return $compare;
}
答案 1 :(得分:1)
compare_update()
的参数?
您需要将$post_id
。
答案 2 :(得分:0)
您是否正在发送compare_update
参数?像这样:
compare_update($someNumber);
答案 3 :(得分:0)
看起来它应该是帖子ID?
答案 4 :(得分:0)
换句话说,
&lt;?php compare_update($ id); ?&GT;
其中$ id设置为你想要compare_update的post_id。