繁体   English   中英

Wordpress PHP回显结果与查询

[英]Wordpress PHP echo result with query

我在页面上有一个结果列表(每个结果都是自定义帖子类型的标题)。 每个自定义帖子都附加了元数据(存储在数据库中的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(每个帖子类型一个),前三个表示帖子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>';
}

尝试这个...

更换

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>';
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM