8710 sujets

Développement web côté serveur, CMS

Bonjour,
Le thème de mon site Wordpress dispose de permaliens personnalisés (non-modifiables dans les réglages Wordpress) ce qui pose problème lors de l'utilisation de Nextgen Gallery qui utilise un autre système de permaliens.
J'ai tenté de modifier le code ci-dessous mais sans succès.

<?php

class Custom_Walker_Nav_Sub_Menu extends Walker_Nav_Menu {

  function start_el(&$output, $item, $depth, $args) {
    global $wp_query;

	if($item->object == 'page')
	{
		$temp_url = strtolower(trim(str_replace(" ", "_", $item->title)));
		$item->url = "#".$temp_url;
	}

        if (!isset($indent)) $indent = '';
		if (!isset($value))  $value = '';
		if (!isset($class_names)) $class_names = '';
		$output .= $indent . '<li id="menu-item-'. $item->ID . '"' . $value . $class_names .'>';

        $attributes  = ! empty( $item->attr_title ) ? ' title="'  . esc_attr( $item->attr_title ) .'"' : '';
        $attributes .= ! empty( $item->target )     ? ' target="' . esc_attr( $item->target     ) .'"' : '';
        $attributes .= ! empty( $item->xfn )        ? ' rel="'    . esc_attr( $item->xfn        ) .'"' : '';
        $attributes .= ! empty( $item->url )        ? ' href="'   . esc_attr( $item->url        ) .'"' : '';
		
		if (!isset($temp_url)) $temp_url = '';
        $attributes .= ' class="'   . esc_attr( 'menu_'.$temp_url ) .'"';

        $item_output = $args->before;
        $item_output .= '<a'. $attributes .'>';
        $item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after;
        $item_output .= '</a>';
        $item_output .= $args->after;
        
      	$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
  }
}

function default_menu() {
	return '';
}

wp_nav_menu( array( 'depth' => 1, 'container_class' => 'menu', 'menu_class' => '', 'menu_id' => '', 'walker' => new Custom_Walker_Nav_Sub_Menu(), 'fallback_cb' => 'default_menu', 'theme_location' => 'primary' ) );


/* Add last_item class to last li in wp_nav_menu lists*/
function add_last_item_class($strHTML) {
	$intPos = strripos($strHTML,'menu-item');
	$intPos = $intPos-4;
	printf("%s style=\"margin-right:0px;\" %s",
		substr($strHTML,0,$intPos),
		substr($strHTML,$intPos,strlen($strHTML))
	);
}

?>


J'ai essayé de modifier les premières lignes de la façon suivante pour tenter de retrouver la même syntaxe que le réglage /%postname%/ de Wordpress mais mon menu ne fonctionne plus avec cette "méthode".

	if($item->object == 'page')
	{
		$temp_url = strtolower(trim(str_replace(" ", "-", $item->title)));
		$item->url = "".$temp_url;
	}


J'aimerais donc annuler complètement cette personnalisation des permaliens pour pouvoir utiliser les réglages de Wordpress et ainsi faire fonctionner le plugin Nextgen.
En espérant que vous pourrez m'aider en compensant mon peu de connaissances en php Smiley help . Merci d'avance
Modifié par duvals (05 May 2014 - 02:46)