Скрытие имен категорий на внешнем интерфейсе, но не на внутреннем, WP сайта
Я использую следующий код, помещенный в functions.php моей темы Wordpress, чтобы скрыть некоторые имена категорий из внешнего интерфейса, которые используются только для организации сообщений и заполнения ползунков:
function the_category_filter($thelist,$separator=' ') {
// list the IDs of the categories to exclude
$exclude = array(1,32,42,4);
// create an empty array
$exclude2 = array();
// loop through the excluded IDs and get their actual names
foreach($exclude as $c) {
// store the names in the second array
$exclude2[] = get_cat_name($c);
}
// get the list of categories for the current post
$cats = explode($separator,$thelist);
// create another empty array
$newlist = array();
foreach($cats as $cat) {
// remove the tags from each category
$catname = trim(strip_tags($cat));
// check against the excluded categories
if(!in_array($catname,$exclude2))
// if not in that list, add to the new array
$newlist[] = $cat;
}
// return the new, shortened list
return implode($separator,$newlist);
}
// add the filter to 'the_category' tag
add_filter('the_category','the_category_filter', 10, 2);
Проблема в том, что этот код также скрывает те же имена категорий в серверной части. Галочка есть, но названия категорий нет. Поэтому я хотел бы изменить этот код, чтобы администраторы могли видеть имена категорий, спрятанных на веб-интерфейсе. Помощь приветствуется. (PS, я очень новичок в коде, поэтому, пожалуйста, попробуйте описательный, или предложите редактирование: высоко ценится)
1 ответ
Проверьте, загружена ли среда администратора в начале вашей функции, и, если это так, прекратите выполнение, вернув исходный список:
function the_category_filter( $thelist, $separator = '' )
{
if( is_admin() )
return $thelist;
// rest of the code
}