Поскольку вы уже используете вспомогательные функции WordPress, возможно, самый простой способ - использовать соответствующие вспомогательные функции get_the_title()
и get_the_guid()
.
Примерно так:
if( $_author = get_post_meta( $post->ID, 'author', true ) ){
foreach( $_author as $id_string ){
$guid = get_the_guid( $id_string );
$post_title = get_the_title( $id_string );
}
}
Вы также можете использовать класс $wpdb
(в частности, метод $wpdb::get_results()
), но это включает в себя написание вашего собственный SQL запрос, , безопасно превращающий его в подготовленный оператор для предотвращения SQL уязвимостей внедрения с помощью $wpdb::prepare()
метода , и в целом кажется более сложным, чем необходимо для чего-то, как просто, как получить два поля из таблицы posts
.
global $wpdb;
$_author = get_post_meta( $post->ID, 'author', true );
$format = array_fill( 0, count($_author), '%d' );
$format = implode(',', $format);
$sql = "
SELECT post_title, guid
FROM {$wpdb->posts}
WHERE ID
IN ({$format})
GROUP BY ID
";
$results = $wpdb->get_results( $wpdb->prepare( $sql, array($_author) ) );
Вышеупомянутая функция не проверена, но должна быть довольно близка к работе, просто показывая, что она немного сложнее, чем использование встроенных функций WordPress уже имеет такую функцию для вас.
WordPress имеет множество удобных вспомогательных функций, таких как эта, обычно они следуют соглашению об именах get_the_[object]_[part_of_object]()
, и обычно Если они начинаются с the_
(без get_
), отобразит значение вместо простого его возврата.