Quelqu'un peut-il me donner une fonction ou une idée de la méthode à utiliser pour masquer des catégories dans la zone de sélection de wp-admin?
J'ai un type de publication personnalisé et j'aimerais que mes auteurs puissent choisir entre 5 catégories seulement lorsqu'ils modifient leurs publications. J'aimerais que cela ne soit le cas que pour le type de message personnalisé et NON pour les messages normaux.
Quelque chose comme ça devrait le faire. Remplacez wpse_77670_getPermittedCategories()
par quel que soit le groupe de catégories autorisé et 'your_custom_category'
par votre taxonomie personnalisée correspondant à votre type de publication personnalisé.
/**
* filter terms checklist args to restrict which categories a user can specify
* @param array $args arguments for function get_terms()
* @param array $taxonomies taxonomies to search
* @return array
*/
function wpse_77670_filterGetTermArgs($args, $taxonomies) {
// check whether we're currently filtering selected taxonomy
if (implode('', $taxonomies) == 'your_custom_category') {
$cats = wpse_77670_getPermittedCategories(); // as an array
if (empty($cats))
$args['include'] = array(99999999); // no available categories
else
$args['include'] = $cats;
}
return $args;
}
if (is_admin()) {
add_filter('get_terms_args', 'wpse_77670_filterGetTermArgs', 10, 2);
}
Modifier, pour travailler avec la taxonomie régulière de "catégorie" sur le type de publication personnalisé:
function wpse_77670_filterGetTermArgs($args, $taxonomies) {
global $typenow;
if ($typenow == 'tsv_userpost') {
// check whether we're currently filtering selected taxonomy
if (implode('', $taxonomies) == 'category') {
$cats = array(89,90,91,92,93,94); // as an array
if (empty($cats))
$args['include'] = array(99999999); // no available categories
else
$args['include'] = $cats;
}
}
return $args;
}
if (is_admin()) {
add_filter('get_terms_args', 'wpse_77670_filterGetTermArgs', 10, 2);
}