je n'ai besoin que d'un identifiant de sous-catégorie. Je reçois déjà un identifiant de sous-catégorie mais cela vient aussi avec un identifiant de catégorie principale
ci-dessous est le code
<?php while ( have_posts() ) : the_post(); ?>
<option value=".<?php
foreach((get_the_category()) as $category) {
echo $category->cat_ID . ' '. $category->cat_name ;
}
?>">
<?php
foreach((get_the_category()) as $category) {
echo $category->cat_name . ' ';
}
?>
</option>
<?php endwhile;
?>
après le code mon code rendu est comme ci-dessous
<select id="filter-select">
<option value="*" selected="selected">all</option>
<option value=".15 8 ">Magdalena Venta </option>
<option value=".15 8 ">Bo. de la Magdalena</option>
<option value=".16 8 ">Juan Venta</option>
<option value=".17 8 ">Club de G</option>
<option value=".21 8 ">Fraccionamiento Viñedos Venta</option>
</select>
après la valeur, tout est l'id de la sous-catégorie, comme 15, 16, 17,21 mais 8 est l'ID de la catégorie principale. Je ne veux pas que 8 à venir.
donc principalement je veux obtenir comme ceci <option value="child category ID ">Child Category Name </option>
j'essaie encore. si je peux obtenir n'importe quelle solution, il affichera ici
Comme vous voulez seulement un champ de formulaire select
qui a une catégorie enfants, allez simplement avec wp_list_categories()
wp_list_categories( array(
'child_of' => 'your parent cat ID',
) );
En fonction de votre cas d'utilisation, vous pouvez également utiliser
get_the_category()
et son filtre get_the_categories
apply_filters( 'get_the_categories', $categories );
get_the_terms()
et son filtre (la fonction est appelée en interne par get_the_category()
:
apply_filters( 'get_the_terms', $terms, $post->ID, $taxonomy );
get_categories()
, transmettez une clé spéciale au tableau d'entrées des arguments (par exemple, my-special-list
) que vous archivez ensuite dans le filtre à l'intérieur de la fonction et modifiez la sortie. La fonction appelle get_terms()
after les callbacks des filtres sont appelés.
apply_filters( 'get_categories_taxonomy', $taxonomy, $args );
get_term_children( $term_ID, 'category' )
Edit L'objet principal interrogé peut toujours être récupéré à l'aide de get_queried_object()
. Et il y a une fonction pour extraire son ID: get_queried_object_id()
.
Je pense que vous devez l'insérer dans une instruction if
supplémentaire pour éliminer les catégories qui n'ont pas de parents (IE, catégories de niveau supérieur), comme suit:
<?php while ( have_posts() ) : the_post(); ?>
<?php
foreach((get_the_category()) as $category) {
if($category->parent) { // check if this category has a parent
echo '<option value="' . $category->cat_ID . ' '. $category->cat_name . '">' . $category->cat_name . '</option>';
}
}
endwhile;
?>
Utilisez simplement wp_dropdown_categories et utilisez child_of paramètre de la catégorie de la page actuelle.
<?php $obj_id = get_queried_object_id(); // category ID ?>
<?php wp_dropdown_categories(array(
'child_of' => $obj_id,
'hide_empty' => false // use this to show ALL sub-categories, even empty ones; otherwise omit this
)); ?>