$wp_query = new WP_Query([
'post_type' => 'office',
'post_status' => 'any',
'posts_per_page' => -1,
]);
$offices = [];
if (count($wp_query->posts) > 0) {
$offices = $wp_query->posts;
}
$keys = [];
foreach ($offices as $office) {
$keys[] = get_post_meta($office->ID, '_office_id', true);
}
foreach ($records as $record) {
$record_key = strtoupper(str_replace(' ', '',
trim($record->location_id) . trim($record->business_unit)));
if (isset($keys) & !empty($keys)) {
if (in_array($record_key, $keys)) {
echo $record_key . ' has a record in WordPress.<br/>';
} else {
echo '<b>' . $record_key . ' doesnt have a record in WordPress.</b><br/>';
}
}
}
Вот что я сейчас получаю с приведенным выше кодом, который отлично работает:
У MONTREALFHTOR есть запись в WordPress.
У MPLSFHUSA нет записи в WordPress.
У NEWYORKFHUSA есть запись в WordPress.
ORANGECO.FHUSA не имеет записи в WordPress.
Но приведенный выше код будет циклически перебирать все клавиши $ более 100 раз, пока не совпадетвсе $ record_key - вот что я пытаюсь достичь:
-- While loop over offices
-- In the loop, for each office, get post meta location ID and business unit and put together as new key
-- Loop through the offices one time, and build an array
-- Use that array to loop through $records once to match the $record_key and $keys