Dove è implementato il wp_head() predefinito?

24 mar 2011, 14:01:37
Visualizzazioni: 20.5K
Voti: 3

Sto cercando di personalizzare un tema e vedo che header.php richiama "wp_head()". Non riesco a trovare un'implementazione di questa funzione nel tema, quindi presumo ci sia un'implementazione predefinita che gestisce, ad esempio, le impostazioni delle Opzioni Colore specificate nella pagina di amministrazione.

Le mie domande correlate sono:

  • C'è un modo per vedere questa implementazione predefinita?
  • È possibile "disattivare" questa implementazione predefinita?
  • È possibile disabilitare l'opzione "Opzioni Colore" nella schermata di amministrazione del tema?

Vi prego di indicarmi la documentazione pertinente se questo può essere più semplice. Ho consultato le pagine di riferimento per la funzione wp_head() e il corrispondente action hook wp_head, ma non sembrano fornire informazioni sufficienti per affrontare le domande di cui sopra.

Grazie.

0
Tutte le risposte alla domanda 1
4

Esiste un posto dove posso vedere questa implementazione predefinita?

La funzione wp_head() semplicemente attiva l'hook wp_head che esegue tutte le funzioni di callback aggiunte a questo hook usando add_action('wp_head','callback_function'); Quindi non c'è un'implementazione predefinita.

Questa implementazione predefinita può essere "disattivata"?

Come abbiamo detto prima, dato che non c'è un'implementazione predefinita, devi trovare gli add_action che si agganciano a wp_head e rimuoverli usando remove_action. Ad esempio, se questo è l'add_action:

add_action('wp_head','callback_function');

allora per rimuoverlo basta aggiungere

remove_action('wp_head','callback_function');

L'opzione "Color Options" può essere disabilitata nella schermata di amministrazione del tema?

Suppongo che il tuo tema abbia qualche tipo di pannello opzioni che ti permette di scegliere le opzioni colore, quindi per disabilitarlo dipende dal tema stesso, ma dovrebbe essere in uno dei file del tema. Sapere di quale tema stai parlando aiuterebbe.

Aggiornamento

ci sono alcune azioni che vengono eseguite di default quando wp_head viene attivato e per rimuoverle basta usare:

remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'feed_links', 2);
remove_action('wp_head', 'index_rel_link');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'feed_links_extra', 3);
remove_action('wp_head', 'start_post_rel_link', 10, 0);
remove_action('wp_head', 'parent_post_rel_link', 10, 0);
remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0);

oltre a questo, cerca add_action('wp_head' ... nei file del tema e nei plugin.

24 mar 2011 14:41:37
Commenti

grazie per le risposte. Sto sperimentando con il tema Twenty Ten, che era incluso nel WordPress che ho scaricato. Se cerco con grep "wp_head", c'è solo un'occorrenza - la chiamata in header.php. Non riesco a trovare nessun "add_action('wp_head')". Tuttavia, sembra che qualcosa venga chiamato da wp_head(), poiché il mio HTML finale include una serie di tag dove c'era wp_head(), incluso uno stile CSS per il body (che implementa la mia scelta di colore dalla schermata di amministrazione). Quindi suppongo che la mia domanda sia: dove si trova il codice che fa questo, e posso bypassarlo? Grazie.

User User
24 mar 2011 14:50:27

@ephemeral: ho aggiornato la mia risposta

Bainternet Bainternet
24 mar 2011 15:04:56

@ephemeral: felice di essere d'aiuto.

Bainternet Bainternet
24 mar 2011 15:16:39

Perfetto. Esattamente quello che mi serviva. Sono riuscito a modificare il tag <link ref="canonical" ... che WordPress genera automaticamente con la chiamata wp_head() rimuovendo la funzione predefinita che lo produce in questo modo: remove_action('wp_head','rel_canonical');. Poi ho registrato la mia funzione personalizzata così: add_action('wp_head', 'my_custom_rel_canonical'); e ho aggiunto tutto questo codice nel template header.php perché avevo bisogno di farlo lì invece che nel solito template functions.php. Quindi ora so che funziona piuttosto bene. Grazie Bainternet.

racl101 racl101
22 feb 2014 00:45:48