Stai cercando un modo per ottenere il genitore assoluto di qualsiasi pagina figlio? Sebbene esista probabilmente un plugin per questo, abbiamo creato un rapido snippet di codice che puoi utilizzare per ottenere il genitore assoluto di qualsiasi pagina figlio in WordPress.
Ottieni il genitore assoluto di qualsiasi pagina figlio, non importa quanto sia "profonda" la pagina figlio nell'albero di navigazione. Questo è ottimo per la navigazione a più di due livelli di profondità.
Nel seguente esempio, quando l'utente si trova su qualsiasi pagina figlio di "La nostra azienda" (che ha un ID di 2), verrà assegnata una classe all'elemento dell'elenco:
<ul class="nav"> <!-- Main nav -->
<li<?php if(is_tree("2")) echo ' class="active"'; ?>><a href="<?php bloginfo( 'url' ); ?>/our-company" title="Our Company">Our Company</a></li>
</ul>
Istruzioni:
Tutto quello che devi fare è aggiungere questo codice al file functions.php del tuo tema o in un plugin specifico per il sito:
function is_tree($pid) { // $pid = The ID of the page we're looking for pages underneath
global $post; // load details about this page
if ( is_page($pid) )
return true; // we're at the page or at a sub page
$anc = get_post_ancestors( $post->ID );
foreach ( $anc as $ancestor ) {
if( is_page() && $ancestor == $pid ) {
return true;
}
}
return false; // we aren't at the page, and the page is not an ancestor
}
Nota: Se questa è la prima volta che aggiungi snippet di codice in WordPress, consulta la nostra guida su come copiare / incollare correttamente snippet di codice in WordPress, in modo da non rompere accidentalmente il tuo sito.
Se ti è piaciuto questo snippet di codice, prendi in considerazione la lettura dei nostri altri articoli sul sito come: 23 migliori temi WordPress per organizzazioni no-profit e come monitorare i link di affiliazione in Google Analytics.
Commenti Lascia una risposta