PHP Wordpress class = "son" eklemek

2 Cevap

Ben bir wordpress şablonu (header.php) içinde bir menü öğeleri listesini dışarı çizim ve listedeki son menü öğesi için özel bir Sınıfadı atamanız gerekir ediyorum. Bu kod ile liste inşa ediyorum ...

$myposts = get_posts();
foreach($myposts as $post) :?> 
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>

Ben son menü öğesi için bu eklemek istiyorum ...

<li class="last">...

2 Cevap

Sen (... bir dizi döndürür () get_posts varsayarak) bu deneyebilirsiniz

<?php 
  $myposts = get_posts();
  $last_key = end(array_keys($array));
  foreach($myposts as $key => $post) :
?>
<li <?php if ($key==$last_key) echo 'class="last"'; ?>><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>

Eğer temanın functions.php dosyasına aşağıdaki kodu ekleyebilirsiniz

add_filter( 'wp_nav_menu_objects', 'first_last_class_to_top_level_menu' ); 

function first_last_class_to_top_level_menu( $objects ) {
    // add 'first' class to first element of menu items array
    $objects[1]->classes[] = 'first';

    // find array index of the last element of top level menu
    foreach($objects as $i=>$item) if($item->menu_item_parent==0) $last_top_level_menu_index = $i;

    // add 'last' class to the last element of top level menu    
    $objects[$last_top_level_menu_index]->classes[] = 'last';
    return $objects;
}