Un utente ha chiesto 👇
Ho aggiunto una barra laterale personalizzata alla mia installazione di WordPress utilizzando il seguente script che crea anche un collegamento:
// Register Sidebars
function custom_sidebars() {
$args = array(
'id' => 'gutenbar',
'class' => 'abeng',
'name' => __( 'Abeng sidebar', 'text_domain' ),
'description' => __( 'Sidebar for block', 'text_domain' ),
);
register_sidebar( $args );
}
add_action( 'widgets_init', 'custom_sidebars' );
add_shortcode( 'add_sidebar', 'custom_sidebars' );
Quando metto il file [add_sidebar] collegamento alla barra laterale del blocco di Gutenberg non visibile. Tuttavia, quando utilizzo un plugin chiamato Sidebar Shortcode [sidebar id=”gutenbar”] la barra laterale è perfettamente visualizzata. Presumo che il mio collegamento sia associato a una funzione specifica e non richieda un nome o un ID per selezionare la barra laterale.
Stavo pensando, perché la barra laterale è stata posizionata con un plugin che permette di inserire funzioni in tutto il sito piuttosto che in un unico tema utilizzando le sue funzioni.php, ecco perché la scorciatoia non ha fatto il suo lavoro. Ma poiché la barra laterale viene visualizzata nell’area dei widget e mi ha permesso di aggiungere widget, e ora funziona con questo plugin, chiaramente non è questo il problema.
Guardandomi sotto il cofano dello Shortcode Sidebar scritto in modo conciso, non vedo cosa voglio aggiungere per rendere funzionale il mio codice.
Perché lo sto facendo? Sto utilizzando pagine a larghezza intera per i miei post, disabilitando la barra laterale predefinita (che non funziona bene in un design reattivo) ma dovendo riscrivere la barra laterale in una colonna.
Grazie per qualsiasi aiuto.
(@prashantvatsh)
7 mesi, 1 settimana fa
Ciao
Il codice seguente registrerà il tuo codice funzione e ogni volta che chiami [add_sidebar] ovunque fornirà la barra laterale “gutenbar”.
add_shortcode( 'add_sidebar', 'wphelp_custom_sidebar' );
function wphelp_custom_sidebar(){
dynamic_sidebar('gutenbar');
}
custom_sidebars
basta registrare la barra laterale ma se vuoi usarla tramite una scorciatoia devi chiamarla tramite la funzione https://developer.wordpress.org/reference/functions/dynamic_sidebar/
(@jdembowski)
7 mesi, 1 settimana fa
@starapple Non creare contenuti duplicati. Ho archiviato il tuo altro materiale.
Lanciatore di thread
(@starapple)
7 mesi, 1 settimana fa
Grazie moderatore. Sono sicuro che hai visto il mio follow-up: “Un’amministrazione potrebbe cancellarlo poiché ho corretto il titolo e restituito la domanda”.
Grazie.
Lanciatore di thread
(@starapple)
7 mesi, 1 settimana fa
@prashantvatsh, grazie per la tua risposta. È sulla buona strada ma sembra che stia causando un errore nell’editor dei blocchi: “L’aggiornamento non è riuscito. La risposta non è una risposta JSON valida. “
La barra laterale compare nell’anteprima solo in alto a sinistra della pagina invece che nella colonna dove ho inserito il collegamento.
(@prashantvatsh)
7 mesi, 1 settimana fa
Prova qualcosa di simile return dynamic_sidebar('gutenbar');
invece di solo dynamic_sidebar('gutenbar');
Lanciatore di thread
(@starapple)
7 mesi, 1 settimana fa
Un ritorno restituisce gli stessi risultati. Nessun JSON e barra laterale validi nella parte superiore del post.
(@prashantvatsh)
7 mesi, 1 settimana fa
ob_start();
dynamic_sidebar( 'gutenbar');
$sidebar_left = ob_get_clean();
$html = ' <div class="sidebar-content"> ' . $sidebar_left . ' </div> ';
return $html;
Sostituire return dynamic_sidebar('gutenbar');
con il codice sopra. Spero che funzioni.
Lanciatore di thread
(@starapple)
7 mesi, 1 settimana fa
Hai colpito nel segno @prashantvatsh
Sembra che mentre cercavamo di evitare dozzine di plugin, ne abbiamo quasi creato un altro. lolol
Grazie per la vostra pazienza. Un vero leone.
Lanciatore di thread
(@starapple)
7 mesi, 1 settimana fa
Questo verrà contrassegnato come risolto.
Was this helpful?
0 / 0