Mon problème est que j’ai utilisé un plugin appelé polylang et que maintenant il ne fonctionne pas avec un autre plugin plus important, j’ai donc besoin de trouver une solution. J'utilise WPML sur d'autres sites et ce n'est pas une option ici, donc vous savez.
J'ai déjà traduit tous les articles et pages et je veux juste utiliser un menu en suédois et un en anglais. Aucun changement dans les permaliens quoi que ce soit.
J'ai trouvé une solution dans ce post Comment changer de menu en fonction de la langue? mais je ne peux pas le faire fonctionner. Pas sûr que post soit toujours actif ou que la solution fonctionne avec WP 3.6, je vous redemande de l'aide.
Ceci est le code de menu du thème halifax
de l'en-tête
<?php wp_nav_menu( array( 'container_id' => 'submenu', 'theme_location' => 'primary','menu_id'=>'web2feel' ,'menu_class'=>'sfmenu','fallback_cb'=> 'fallbackmenu' ) ); ?>
code de la functions.php
register_nav_menus( array(
'primary' => __( 'Primary Navigation', '' ),
) );
function fallbackmenu(){ ?>
<div id="submenu">
<ul><li> Go to Adminpanel > Appearance > Menus to create your menu. You should have WP 3.0+ version for custom menus to work.</li></ul>
</div>
Résolu avec add_meta_box
dans functions.php
. Voici mon code:
add_action( 'add_meta_boxes', 'my_custom_box' );
function my_custom_box(){
if ( function_exists('add_meta_box') ) {
add_meta_box( 'page_custom_menu','page-menu', 'page_custom_menu_box', 'page', 'side','high');
add_meta_box('page_custom_menu','page-menu', 'page_custom_menu_box', 'post', 'side', 'high');
}
}
function page_custom_menu_box(){
global $post;
if ( metadata_exists( 'post', $post->ID, 'page_menu' ) ) {
$menu_id = get_post_meta( $post->ID, 'page_menu', true );
}
$entries = get_terms( 'nav_menu', array( 'hide_empty' => false ) );
echo '<select class="postform" id="page_menu" name="page_menu"> ';
echo '<option value="">Select...</option> ';
foreach ($entries as $key => $entry){
$id = $entry->term_id;
$title = $entry->name;
if ( $id == $menu_id ){
$selected = "selected='selected'";
}else{
$selected = "";
}
echo"<option $selected value='". $id."'>". $title."</option>";
}
echo '</select>';
}
add_action('save_post', 'save_postdata');
function save_postdata( $post_id ) {
global $post;
if( !isset($_POST['page_menu']) )
return;
$data = $_POST['page_menu'];
if(get_post_meta($post_id, 'page_menu') == "") {
add_post_meta($post_id, 'page_menu', $data, true);
}elseif($data != get_post_meta($post_id, 'page_menu', true)) {
update_post_meta($post_id, 'page_menu', $data);
}elseif($data == "") {
delete_post_meta($post_id, 'page_menu', get_post_meta($post_id, 'page_menu', true));
}
}
Dans header.php
:
if( is_page() && get_post_meta( $post->ID, 'page_menu', true )!='' ){
global $post;
$menu_id = get_post_meta( $post->ID, 'page_menu', true );
wp_nav_menu( array( 'container_id' => 'submenu', 'menu' => $menu_id ) );
}elseif( is_single() && get_post_meta( $post->ID, 'page_menu', true )!='' ){
global $post;
$menu_id = get_post_meta( $post->ID, 'page_menu', true );
wp_nav_menu( array( 'container_id' => 'submenu', 'menu' => $menu_id ) );
}else{
//default menu
wp_nav_menu( array( 'container_id' => 'submenu', 'theme_location' => 'primary','menu_id'=>'web2feel' ,'menu_class'=>'sfmenu','fallback_cb'=> 'fallbackmenu' ) );
}