Я добавил пользовательский столбец в обычный список сообщений в админке Wordpress.
Нет пользовательских таксономий, просто должны отображаться теги, которые принадлежат определенному массиву тегов.
т.е:
1 столбец для страны
2 колонка для провинции
3 колонка для типа новостей
4 столбца для типа статьи
и т.д.
Там должно быть 6 таких столбцов.
Обычный столбец тегов все еще будет там, содержащий тот же тег, что и этот настраиваемый столбец, настраиваемые столбцы необходимы из-за запрошенной серверной логики.
так например:
В первом настраиваемом столбце должны отображаться только теги, назначенные тегам сообщений с определенными идентификаторами тегов (52,128,97)
Во втором настраиваемом столбце должны отображаться только теги, назначенные тегам записей с определенными идентификаторами тегов (875,118,27,881)
и т. Д.
Я понимаю, что get_the_tags () использует get_the_terms () , но get_the_terms () может иметь только 2 параметра, $ id и $ taxonomy, в данном случае это 'post_tag' .
Вот где я дошел:
add_filter('manage_posts_columns', 'posts_column_custom1_country', 10);
add_action('manage_posts_custom_column', 'posts_column_custom1_country_populate', 10, 3);
function posts_column_custom1_country($defaults) {
$defaults['customtag-country'] = __('Country');
return $defaults;
}
function posts_column_custom1_country_populate($column_name, $id) {
if($column_name === 'customtag-country') {
echo get_the_terms( $id, 'post_tag');
}
}
Примечание: преобразование массива в строку в '...'
Что нормально, так как он возвращает массив, а не строку.
Как преобразовать его в строку, чтобы отобразить фактические имена тегов (через запятую), как это делает столбец тегов по умолчанию из Wordpress Core?
Тогда как это можно настроить, чтобы включить массив идентификаторов тегов, чтобы он не отображал все теги, назначенные посту.
На рассматриваемом сайте Wordpress используется более 700 тегов, поэтому исключение 780 для каждого из этих столбцов только для отображения 20 в массиве будет плохим решением.
Как мне сделать что-то похожее на параметр include, который, к сожалению, get_the_terms не принимает.