Come modificare il contenuto di dynamic_sidebar() in WordPress?

10 apr 2013, 17:41:12
Visualizzazioni: 21.2K
Voti: 7

Conosco bene PHP ma sono nuovo di WordPress. Ho ricevuto un sito WordPress incompleto. Ha una pagina home statica con un form newsletter di Aweber. Ho provato ad esaminare il tema installato e nel file home.php ho trovato:

<div class="home-infobox">
<?php if ( is_active_sidebar( 'homepage-infobox' ) ) : ?>
    <?php dynamic_sidebar( 'homepage-infobox' ); ?>
<?php endif; ?>
</div>

Ora quando visualizzo il sorgente della home page, il form di iscrizione alla newsletter di Aweber appare esattamente all'interno del <div class="home-infobox">. Come primo passo devo apportare modifiche al form e ho cercato di capire da dove viene prelevato il contenuto. Non so se proviene dal database o da qualche file PHP, sono totalmente disorientato. Per favore, aiutatemi a capire questo aspetto.

3
Commenti

Quali modifiche vuoi apportare? Ti riferisci allo stile di quel widget specifico o ai contenuti di quel widget?

Brad Dalton Brad Dalton
13 gen 2014 03:26:49

Stai parlando di una pagina home statica, giusto? Allora dovresti controllare front-page.php se il tema ha quel file, altrimenti index.php

bravokeyl bravokeyl
23 mar 2015 22:22:49

Ops! Sembra essere una vecchia domanda, non l'avevo verificato.

bravokeyl bravokeyl
23 mar 2015 22:24:03
Tutte le risposte alla domanda 4
0
  1. Il contenuto di dynamic_sidebar viene estratto dai widget associati a questa "Sidebar" o "Area Widget" in wp-admin, come risposto da @s_ha_dum. Non esiste un file template per la sidebar stessa. Visita /wp-admin/widgets.php sotto Aspetto -> Widget e cerca l'area widget chiamata homepage-infobox. Sarai in grado di aggiungere/rimuovere widget e possibilmente modificare il contenuto qui.
  2. Cerca nei file dei plugin e del tema, possibilmente in functions.php, la funzione register_sidebar per trovare quella che utilizza lo slug homepage-infobox. La dichiarazione di register_sidebar potrebbe includere del codice di presentazione.

Vedi anche

9 set 2015 03:41:50
2

Stai osservando, come suggerisce il nome della funzione, una sidebar dinamica. Il contenuto che riempie quella sidebar dovrebbe provenire da widget della sidebar, alcuni dei quali sono forniti dal core di WordPress ma molti (la maggior parte) sono forniti da plugin e temi. I widget potrebbero popolarsi dal database, o da fonti esterne come feed RSS, oppure potrebbero essere hard-codificati per visualizzare dati statici. Dipende dal widget. Se osservi il markup all'interno della sidebar per gli elementi individuali, di solito puoi capire quale plugin sta creando il widget. Controlla le classi CSS e gli id.

10 apr 2013 18:08:29
Commenti

Grazie, Aweber ha il suo plugin ma questo plugin non è installato sul sito web. I feed RSS non sono possibili in quanto posso far funzionare il sito su una macchina offline. Quindi o è statico o proviene dal database. Ha tag <img> che contengono immagini dalla cartella del tema. Le classi CSS e gli ID si trovano nel file style.css del tema, ho provato a fare una ricerca completa nella cartella per i tag ma sono stati rilevati SOLO in style.css, non in nessun altro file. Quindi questo indica che provengono dal database? Puoi suggerire qualche tabella specifica da controllare?

Zeeshan Zeeshan
10 apr 2013 18:21:20

Dovresti evitare di modificare il database direttamente. È un'operazione rischiosa. Prima individua il codice che genera i widget. Senza sapere di quali widget stai parlando non posso essere più specifico. Potresti non trovare i nomi delle classi scritti da nessuna parte tranne che nel foglio di stile, ma spesso puoi dedurre da quei nomi quale plugin o tema ha creato il widget.

s_ha_dum s_ha_dum
10 apr 2013 18:27:42
0

Potrebbe non essere nel database. È molto probabile che si trovi in un file functions basato sul tema che non hai controllato.

Dovresti controllare il file functions.php della cartella del tema. Altrimenti, potrebbe esserci un file includes/theme-init.php che contiene il codice associato alla tua sidebar dinamica.

15 apr 2013 17:33:36
0

Un altro problema potrebbe essere che non hai chiamato get_footer() nel template. È lì che vengono caricati gli script.

È facile dimenticarselo quando si lavora su un sito in cui alcune parti non sono ancora state completate.

1 giu 2020 23:28:52