如果 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";
}
所以我似乎无法弄清楚这个逻辑,所以我想看看是否有人可以帮助我。
所以我有以下 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";
}