我在页面上有一个结果列表(每个结果都是自定义帖子类型的标题)。每个自定义帖子都附加了元数据(存储在数据库中的wp_postmeta中),其中一个元数据是变量wedding_hidden_is_completed
对于此变量设置为0的每个自定义帖子,我想回显一条错误消息。
例如,假设我有ID为1,2,3,4的帖子,只有帖子2和3将变量wedding_hidden_is_completed
设置为1,那么我需要回显2个单独的错误消息:Post with Error 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个用post 1表示错误,最后一个用post 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>';
}
答案 0 :(得分:2)
试试这个......
替换
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
使用
if($is_form_complete !=1) {
$error_message = '<p>Error with post'.$errors_query->post->ID.'</p>';
echo '<div class="errors">'.$error_message.'</div>';
}
这样,只有在出现错误时才输出错误div。这将阻止它按照您的示例输出相同的错误3次。
<强>更新强>
对于您的多个错误:
在你的循环之前
// Define the variable first and give it a default value
$error_message = null;
然后在你的循环中(使用。=让我们添加到变量中)
// Form not complete
if($is_form_complete !=1) {
$error_message .= '<i class="fa fa-clock-o"></i><p>Booking form ID DISTR'.$errors_query->post->ID.' needs to be completed.</p>';
}
// Deposit due
if($is_deposit_paid !=1) {
$error_message .= '<i class="fa fa-clock-o"></i><p>Booking form ID DISTR'.$errors_query->post->ID.' deposit now due.</p>';
}
// Full Payment due
if($is_full_amt_paid !=1) {
$error_message .= '<i class="fa fa-clock-o"></i><p>Booking form ID DISTR'.$errors_query->post->ID.' remaining balance now due.</p>';
}
最后关闭你的循环后
// Check if there are any errors to display
if($error_message != null) {
echo '<div class="errors">'.$error_message.'</div>';
}