Se il permalink è uguale all'URL corrente del sito

28 feb 2013, 18:00:36
Visualizzazioni: 13.7K
Voti: 3

Esiste un modo per aggiungere una classe a un div, quando l'URL corrente del sito è uguale al permalink di un post?

Ho bisogno di una classe "current" per il mio menu personalizzato. Ho inserito i link dei post in un elemento lista con un loop, e per ogni link voglio verificare se il permalink corrisponde all'URL della pagina corrente. Se il permalink corrisponde all'URL corrente, voglio aggiungere la classe "current".

Qualcosa come:

<?php $currentUrl = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>
<?php if ( $currentUrl == the_permalink() ) { echo ' class="current"'; } else {} ?>

Insieme al loop:

<?php $currentUrl = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>

<?php query_posts('orderby=name'); ?>
<?php while (have_posts()) : the_post(); ?>

   <li>
       <a <?php if ( $currentUrl == the_permalink() ) { echo ' class="current"'; } else {} ?>
       href="<?php the_permalink() ?>">
          <?php the_title() ?>
       </a>
   </li>

<?php endwhile; ?>
<?php wp_reset_query(); ?>
0
Tutte le risposte alla domanda 1
1

Farei qualcosa di più semplice usando l'ID:

<?php $current_id = $post->ID; ?>
<?php query_posts('orderby=name'); ?>  
<?php while (have_posts()) : the_post(); ?>

   <li>
       <?php $current_class = ( $current_id == $post->ID ) ? 'class="current"' : ''; ?>
       <a <?php if ( $current_class ) echo $current_class; ?> href="<?php the_permalink() ?>">
          <?php the_title() ?>
       </a>
   </li>

<?php endwhile; ?>
<?php wp_reset_query(); ?>

Non ho avuto tempo di verificare il codice, spero sia d'aiuto.

28 feb 2013 18:18:40
Commenti

Prego. Sto facendo una piccola modifica per evitare di non visualizzare nulla.

Simon Simon
28 feb 2013 22:13:21