Un utente ha chiesto informazioni su Developing with WordPress di Wordpress

Come creo un collegamento per le barre laterali di WordPress?

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)

Moderatore del forum e Brute Squad

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

Lascia un commento 0

Your email address will not be published. Required fields are marked *