如果 foreach 返回为空则显示消息

Display message if foreach comes back as empty

所以我似乎无法弄清楚这个逻辑,所以我想看看是否有人可以帮助我。

所以我有以下 foreach:

echo "Page: " . $page_placement . "/" . $total_pages . "\n\n";
foreach ($posts as $post) {
    $current_post_id = post_exists(
        $post->title->rendered,
        '',
        '',
        '',
        ''
    );
    if ($current_post_id === 0) {
        $my_post = [
            'post_type'     => 'post',
            'post_status'   => 'pending',
            'post_title'    => wp_strip_all_tags($post->title->rendered),
            'post_content'  => wp_strip_all_tags($post->content->rendered),
            'post_excerpt'  => wp_strip_all_tags($post->excerpt->rendered),
            'post_author'   => 1,
            'post_date'     => $post->date,
        ];

        // Insert post.
        $post_id = wp_insert_post($my_post);
        wp_set_object_terms($post_id, 'Global', 'category');
        wp_set_object_terms($post_id, 'Global', 'post_tag');
        echo "ID: " . $post->id . " - Title: " . $post->title->rendered . " has been imported.\n";
    }
}

抓取50个$posts然后循环调用post_exists()检查post的标题,如果不存在则导入post 否则它会跳过它。


如果没有导入全部 50 个 post,我如何显示回显消息?

我无法在 foreach 中调用 if (!$current_post_id) {,因为它会显示消息 50 次,我尝试在 foreach 之外播放一个变量,然后调用 $my_post[] = [ .... ] 但是然后 wp_import_post 没有用。

只需使用一个变量(例如 $imported,初始值=0)来检查计数。如果导入,请增加它。

所以最后如果变量还是0,调用echo语句

因此:

<?php
echo "Page: " . $page_placement . "/" . $total_pages . "\n\n";

$imported=0;

foreach ($posts as $post) {


    $current_post_id = post_exists(
        $post->title->rendered,
        '',
        '',
        '',
        ''
    );
    if ($current_post_id === 0) {
        $my_post = [
            'post_type'     => 'post',
            'post_status'   => 'pending',
            'post_title'    => wp_strip_all_tags($post->title->rendered),
            'post_content'  => wp_strip_all_tags($post->content->rendered),
            'post_excerpt'  => wp_strip_all_tags($post->excerpt->rendered),
            'post_author'   => 1,
            'post_date'     => $post->date,
        ];

        // Insert post.
        $post_id = wp_insert_post($my_post);
        wp_set_object_terms($post_id, 'Global', 'category');
        wp_set_object_terms($post_id, 'Global', 'post_tag');
        echo "ID: " . $post->id . " - Title: " . $post->title->rendered . " has been imported.\n";
        $imported++;
    }

}

if ($imported==0){
echo "No record imported";
}