This is the technical support forum for WPML - the multilingual WordPress plugin.

Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.

Our next available supporter will start replying to tickets in about 0.91 hours from now. Thank you for your understanding.

This topic contains 5 risposte, has 2 voci.

Last updated by Vincenzo 4 mesi, 3 settimane fa.

Assigned support staff: Vincenzo.

Autore Post
May 20, 2019 at 10:44 am

davideC-20

Ho creato 3 menu (ID 21, 24 e 25) nel sito principale (namirial.xyz) di un'installazione WP multi-sito e nel sito principale appunto, si visualizzano correttamente: hidden link

Vorrei richiamare questi stessi menu nei vari sotto-siti, tra cui hidden link, ma non vengono mostrati i menu richiesti, o meglio, il primo richiamo è corretto, ma il secondo menu (ID 24) non viene richiamato, ma viene mostrato il menu con ID 25 (vedi screenshot).

Mi aspettavo di vedere: gli stessi menu che appaiono qui hidden link

Per richiamare i menu abbiamo impostato degli shortcode che richiamano la seguente funzione:

<?php
function get_global_menu($atts, $content = null) {
$on_mothership = is_main_site();

// Additional tasks if we're not on the mothership
if ( !$on_mothership ) {
// Note the current language
$lang = ICL_LANGUAGE_CODE;
// Switch to the mothership
switch_to_blog(1);
// Change to the current language
global $sitepress;
$sitepress->switch_lang($lang);
}

// Generate menu
extract(
shortcode_atts(
array( 'name' => null, ),
$atts
)
);
$global_menu = wp_nav_menu(
array(
'menu' => $name,
'echo' => false
)
);

if ( !$on_mothership ) {
// Reset to current blog
restore_current_blog();
}

return $global_menu;

}
add_shortcode('menu', 'get_global_menu');
?>

Es. di richiamo shortcode: [menu name="24"]

Questi shortcode funzionano correttamente se WPML viene disabilitato.

May 20, 2019 at 3:16 pm #3848265

Vincenzo
Supporter

Languages: Inglese (English ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+02:00)

Salve e grazie per aver contattato il supporto WPML!

Da quello che posso vedere, si tratta di fornire assistenza per un lavoro di programmazione personalizzato e non siamo autorizzati a fornirla.

Puoi provare una di queste soluzioni:

1. Disattiva l'opzione "Rettifica ID per la funzionalità multilingua" da WPML -> Lingue -> Fai funzionare i temi in modalità multilingue.

2. Prova a tradurre i menu in questione e assicurati di usare il codice ID corretto per la lingua

3. Prova a rimuovere il vecchio menu ed a crearne uno nuovo

Per avere assistenza su codice personalizzato puoi rivolgerti ad uno dei contractor elencati in questa pagina:
- https://wpml.org/contractors/

In questo modo otterrai l'assistenza personalizzata di cui hai bisogno per portare avanti il tuo progetto.

Grazie

May 20, 2019 at 3:40 pm #3848381

davideC-20

Salve Vincenzo,
l'errore sembra un "problema noto" da come potevo leggere qui sul forum:
- https://wpml.org/forums/topic/wpml-breaks-the-global-menu-in-multisite-children-sites-except-primary-site/
- https://wpml.org/forums/topic/multisite-menu-problems-switch_to_blogblog_id-restore_current_blog/
- https://wpml.org/forums/topic/multisite-switch_to_blog-show-only-menus-from-languages-that-exist/
- https://wpml.org/forums/topic/multisite-wp_nav_menu-inconsistently-throws-errors-on-child-sites/

Le soluzioni proposte nei post precedenti, però, non sembrano funzionare nel mio caso.

Non credo sia un problema di codice (o necessità di codice custom) visto che gli shortcode prodotti funzionano CORRETTAMENTE se WPML viene disabilitato.

May 20, 2019 at 4:27 pm #3848927

Vincenzo
Supporter

Languages: Inglese (English ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+02:00)

Salve,

il codice che non produce i risultati desiderati è un codice personalizzato.
Ad ogni modo cercherò di aiutarti nei limiti del possibile.

Potresti dirmi i risultati delle tre prove che ho richiesto nella mia risposta precedente?

Grazie

May 22, 2019 at 12:38 pm #3865483

davideC-20

Salve Vincenzo,
abbiamo provato di nuovo a cancellare e ricreare il menu che non veniva mostrato correttamente e ora sembra funzionare.

Grazie.

May 22, 2019 at 1:40 pm #3866253

Vincenzo
Supporter

Languages: Inglese (English ) Italiano (Italiano )

Timezone: Europe/Rome (GMT+02:00)

Salve,

sono contento che il problema sia risolto.

In caso di altri problemi o domande non esitare ad aprire un nuovo ticket.

Buon lavoro