Я работаю над wordpress и пытаюсь написать фрагмент кода, который преобразует "Альтернативные контакты", которые люди вводят для своих профилей, в ссылки профилей для лучшей навигации. чтобы добраться до:
add_shortcode( 'Alternative_Contact_Links', function () {
global $current_user;
global $current_user_manager;
global $wpdb;
global $details;
$contacts = '';
$contactsnames = '';
$dummyurl = "https://altranet-test/user/";
$displaycontacts = '';
$urldata = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH );
$urldata = preg_replace('/\D/', '', $urldata);
$current_user = wp_get_current_user();
$current_user_manager =get_metadata( 'user', $urldata, 'user_id', true );
$sqlquery = "SELECT DISTINCT wp_usermeta.meta_value, wp_usermeta.user_id FROM wp_usermeta WHERE wp_usermeta.meta_key = 'Alternative_Contact' AND wp_usermeta.user_id = '$urldata'";
$usernames = array();
$nameArray = array();
$usernames = $wpdb->get_results($sqlquery);
foreach ($usernames as $details) {
$names = $details->meta_value;
echo $names;
}
)};
Это работает, как ожидалось, и $ names возвращает «Joe Bloggs, John Smith» в виде одной строки. Вот где я запутался. Чтобы создать гиперссылки на каждый из профилей пользователей, мне нужно получить идентификаторы каждого из этих имен. Однако как передать оба имени в оператор SQL.
Например:
$sqlquery2 = "SELECT wp_users.ID FROM wp_users WHERE wp_users.display_name = '$names'";
$result2 = $wpdb->get_results($sqlquery2);
foreach ($result2 as $details2) {
$managerid = $details2->ID;
$profilelinks = '<a href="'.$teammembers.'">'.$names.'</a>';
$displayallteammembers .= $profilelinks. "<Br>";
}
return "<strong>Manager's (above) Direct Reports</strong>"."<Br>".$displayallteammembers;
});
Это из примера, который я использовал ранее, но он не работает, поскольку я не могу получить оба идентификатора из базы данных?
Кто-нибудь знает, как Я могу разделить строку $ names запятыми и запустить каждое имя с помощью оператора SQL и сделать их ссылками?
Спасибо!
EDIT (используя IN, чтобы попытаться получить оба идентификатора):
SELECT wp_users.ID FROM wp_users WHERE wp_users.display_name IN ('Joe Bloggs' , 'John Smith').
(Таким образом, результатом будет идентификатор Joe Bloggs ID, потому что он получает его, а затем останавливается.