【发布时间】:2015-12-02 11:52:42
【问题描述】:
我在页面上有一个结果列表(每个结果都是自定义帖子类型的标题)。每个自定义帖子都附加了元数据(存储在数据库中的 wp_postmeta 中),元数据的一位是变量wedding_hidden_is_completed
对于我将此变量设置为 0 的每个自定义帖子,我想回显一条错误消息。
例如,假设我有 ID 为 1、2、3、4 的帖子,并且只有帖子 2 和 3 将变量 wedding_hidden_is_completed 设置为 1,那么我需要回显 2 条单独的错误消息:帖子 1 错误和帖子 4 出错(这些应包含在单独的 div 中)。
这是我目前所拥有的:
global $wpdb;
$args = array(
'post_type' => 'bookings',
'meta_query' => array(
array(
'key' => 'wedding_user',
'value' => $current_user->display_name,
'compare' => '=',
)
)
);
// Errors query
$errors_query = new WP_Query( $args );
// The Loop
if ( $errors_query->have_posts() ) {
while ( $errors_query->have_posts() ) {
$errors_query->the_post();
// Fill out form \
$is_form_complete = get_post_meta( $errors_query->post->ID, 'wedding_hidden_is_completed', true );
if($is_form_complete !=1) {
$error_message = '<p>Error with post'.$errors_query->post->ID.'</p>';
}
?>
<div class="errors"><?php echo $error_message; ?></div>
<?php
}
}
这当前回显了 4 个 div(每个帖子类型一个),前 3 个表示帖子 1 的错误,最后一个表示帖子 4 的错误。我怎样才能做到这样我只回显每个错误的 div ?
更新:代码显示所有错误 if 语句
if($is_form_complete !=1) {
$error_message = '<p>Booking form ID DISTR'.$errors_query->post->ID.' needs to be completed.</p>';
echo '<div class="errors"><i class="fa fa-clock-o"></i>'.$error_message.'</div>';
}
// Deposit due
if($is_deposit_paid !=1) {
$error_message = '<p>Booking form ID DISTR'.$errors_query->post->ID.' deposit now due.</p>';
echo '<div class="errors"><i class="fa fa-clock-o"></i>'.$error_message.'</div>';
}
// Full Payment due
if($is_full_amt_paid !=1) {
$error_message = '<p>Booking form ID DISTR'.$errors_query->post->ID.' remaining balance now due.</p>';
echo '<div class="errors"><i class="fa fa-clock-o"></i>'.$error_message.'</div>';
}
【问题讨论】:
标签: php wordpress loops if-statement