2012-03-11 7 views
6

Questo è il mio primo tentativo di codificare un tema wordpress personalizzato e ci sono quasi. Ci sono alcuni bug perché ce ne sono con qualsiasi cosa, ma ho provato alcune opzioni diverse per risolverli ma senza successo.Come posso risolvere un tema personalizzato wordpress per funzionare con i plugin?

Il collegamento è www.studiosimplicit.com/wp.

Il mio primo problema è con slider nivo nella pagina degli eventi (Www.studiosimplicit.com/wp/events). Inizialmente avevo un problema con il plugin stesso, in cui le immagini venivano impilate una sull'altra. Per correggere questo ho inserito manualmente il codice per chiamare i file nivo .js e questo sembrava risolvere il problema. Ma ora l'immagine di caricamento è lì ma le immagini non si caricano.

Ho controllato l'URL delle immagini e non è questo il problema. Ho anche abilitato la funzione "post-thumbnails" (come suggerito sul sito Web nivoslider come una soluzione comune al mio problema) ma non sembra che l'abbia risolto. Non vale nulla che quando passo a un tema predefinito, il cursore funzioni correttamente. È quando attivo il tema personalizzato che si rompe.

Il mio secondo problema è con un plug-in che dovrebbe impostare un'immagine di sfondo a schermo intero, ridimensionata automaticamente per adattarsi alla larghezza del browser. Ancora una volta, il plugin funziona quando passo a un tema predefinito ma si interrompe quando passo al tema personalizzato.

Si prega di aiuto!

risposta

18

A causa di ciò, il tema personalizzato manca dei ganci comuni che consentono ai plugin di modificare/emettere il proprio codice.

Per fare un semplice esempio, ogni tema dovrebbe avere una chiamata a wp_head() da qualche parte nella sezione <head> della pagina di output. Ciò consente a un plugin di "agganciarsi" al tuo <head> e, ad esempio, al codice di uscita di caricare il suo Javascript.

Ecco un esempio di vita reale. Il tema WordPress TwentyEleven ha questo nel suo file header.php (tradizionalmente la parte di un tema che emette la sezione <head> di ogni pagina):

... other <head> stuff 
    wp_head(); 
?> 
</head> 

Il WP Nivo Slider usa questo codice quando chiama wp_enqueue_script, ad esempio, in il suo file wp-nivo-slider.php. Dietro le quinte, wp_enqueue_script usa il gancio wp_head() nel tema TwentyEleven per l'uscita del Javascript richiesto includere nella sezione <head> (attraverso un percorso un po 'tortuoso, che finisce in wp_print_head_scripts per impostazione predefinita.)

Quindi, in sostanza, se funziona un plug-in con un tema fornito, ma non funziona con il tema personalizzato, il tuo compito è quello di trovare i ganci che mancano dal tuo tema che il plugin sta tentando di utilizzare.

Se si controlla il WordPress Theme Development documentation, si troverà un elenco di hook che i temi dovrebbero includere nella sezione "Ganci API Plugin".Si tratta, nello specifico:

  • wp_head
  • wp_footer
  • wp_meta
  • comment_form

quelli importanti per la maggior parte dei plugin saranno wp_head e wp_footer. È qui che viene inserita la maggior parte degli Javascript, nella sezione head o footer (prima del tag <body> di chiusura)

La maggior parte dei plugin come slider Javascript, gallerie di immagini, ecc., Aggiungono semplicemente un nuovo script o due in la sezione <head> o footer del sito Web e forse includere i file CSS per ridisegnarne il contenuto, sempre nella sezione <head>, quindi questi due sono generalmente gli unici hook di cui hanno bisogno.

Quindi, il mio consiglio sarebbe quello di assicurarsi che il proprio tema personalizzato include una chiamata al wp_head() alla fine della sua sezione <head> (copiare il codice da quel tema di lavoro hai) e anche una chiamata a wp_footer(), basta prima del tag di chiusura </body>. Ci sono buone probabilità che la maggior parte dei plugin basati su Javascript funzionino.

+0

Fantastico! Non appena ho inserito questi ganci, tutto ha iniziato a funzionare. Sicuramente un'esperienza di apprendimento per me in termini di tematiche wordpress. Aiuta che ho avuto un sito Web facile da convertire in wordpress. Spiegazione molto dettagliata pure. Apprezzo il tuo tempo e la tua pazienza. GRAZIE! – giwook

1

Solo per la cronaca: ho avuto un problema simile e ho dovuto sostituire la linea

<?php echo get_the_content() ?> 

con questo:

<?php echo the_content() ?> 

Ma ho anche dovuto includere wp_head e wp_foot come spiegato di Matt.

0

appena includono

<?php include_once(ABSPATH . 'wp-admin/includes/plugin.php'); ?> 
<?php wp_head()?> 

prima di testa e dopo che sarà sicuramente funzionerà.

Problemi correlati