Je dois obtenir l'URL de la catégorie pour le mettre dans des extraits de méta. Maintenant, la sortie à l'intérieur de la plage est tag avec url. Je n'ai besoin que d'avoir l'URL sans tag et de mettre dedans $ cat_display. J'essaie avec 2 options, mais je vais voir une erreur: Remarque: Essayer d'obtenir une propriété de non-objet
// Get post category info
$category = get_the_category();
if(!empty($category)) {
// Get last category post is in
$last_category = $category[count($category) - 1];
// Get parent any categories and create array
$get_cat_parents = rtrim(get_category_parents($last_category->term_id, true, ','),',');
$cat_parents = explode(',',$get_cat_parents);
//$category_link = get_category_link( $category_id );
$cat_parents_url = get_category_link($cat_parents->term_id);
// Loop through parent categories and store in variable $cat_display
$cat_display = '';
foreach($cat_parents as $parents) {
$cat_display .= '<li class="item-cat" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><span itemprop="item"><span itemprop="name">'.$parents .'</span></span><meta itemprop="position" content="'. $counter++ .'" /></li>';
$cat_display .= '<li class="separator"> ' . $separator . ' </li>';
}
}
Remarque: Essayer d'obtenir la propriété de non-objet
C'est parce que $cat_parents
n'est pas une object
; c'est une array
:
$cat_parents_url = get_category_link($cat_parents->term_id);
Deuxièmement, pour obtenir uniquement l'URL de la catégorie, appelez get_category_parents()
avec le paramètresecondparamétré sur false
, comme suit:
$get_cat_parents = rtrim(get_category_parents($last_category->term_id, false, ','),',');
$get_cat_parents
serait alors une liste/string
de la catégorieslugset non des liens de catégorie au format HTML tels que <a href="http://example.com/category/slug">Name of the category here</a>
.
Ensuite, dans la boucle foreach
, vous pouvez obtenir l’URL de la catégorie de la manière suivante:
foreach($cat_parents as $slug) {
$term = get_category_by_slug( $slug );
if ( ! $term ) {
continue;
}
$cat_url = esc_url( get_category_link( $term->term_id ) );
...
}
C'est à dire. Obtenez la catégorie/le terme object
/data en utilisant get_category_by_slug()
, puis l'URL de la catégorie en utilisant get_category_link()
.
Voici le code complet que j'ai utilisé: (réindenté pour plus de clarté)
// Get post category info
$category = get_the_category();
if(!empty($category)) {
// Get last category post is in
$last_category = $category[count($category) - 1];
// Get parent any categories and create array
$get_cat_parents = rtrim(get_category_parents($last_category->term_id, false, ','),',');
$cat_parents = explode(',',$get_cat_parents);
$cat_display = '';
$separator = ', '; // not defined; so I defined it here.
$counter = 0; // not defined; so I defined it here.
foreach($cat_parents as $slug) {
$term = get_category_by_slug( $slug );
if ( ! $term ) {
continue;
}
$cat_url = esc_url( get_category_link( $term->term_id ) );
$cat_display .= '<li class="item-cat" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><span itemprop="item"><span itemprop="name">'.$cat_url .'</span></span><meta itemprop="position" content="'. $counter++ .'" /></li>';
$cat_display .= '<li class="separator"> ' . $separator . ' </li>';
}
echo $cat_display; // test
}