Unde este implementată funcția implicită wp_head()?

24 mar. 2011, 14:01:37
Vizualizări: 20.5K
Voturi: 3

Încerc să personalizez o temă și observ că fișierul header.php apelează "wp_head()". Nu pot găsi o implementare a acesteia în temă, așa că presupun că există o implementare implicită care include, de exemplu, setările pentru Opțiuni de Culoare specificate în pagina de administrare.

Așadar, întrebările mele conexe sunt:

  • Există undeva unde pot vedea această implementare implicită?
  • Poate fi această implementare implicită "dezactivată"?
  • Poate fi dezactivată opțiunea "Opțiuni de Culoare" în ecranul de administrare pentru temă?

Vă rog să îmi indicați documentația relevantă dacă ar fi mai ușor. Am consultat paginile de referință pentru funcția wp_head() și pentru hook-ul de acțiune wp_head corespunzător, dar acestea nu par să ofere suficiente informații pentru a aborda întrebările de mai sus.

Mulțumesc.

0
Toate răspunsurile la întrebare 1
4

Există undeva unde pot vedea această implementare implicită?

Funcția wp_head() pur și simplu declanșează cârligul de acțiune wp_head care rulează toate funcțiile de callback care au fost adăugate la acest cârlig folosind add_action('wp_head','functie_callback'); Deci nu există o implementare implicită.

Poate fi "dezactivată" această implementare implicită?

După cum am spus anterior, deoarece nu există o implementare implicită, trebuie să găsiți add_action-urile care se conectează la wp_head și să le eliminați folosind remove_action. De exemplu, dacă acesta este add_action:

add_action('wp_head','functie_callback');

atunci pentru a-l elimina, adăugați

remove_action('wp_head','functie_callback');

Poate fi dezactivată opțiunea "Opțiuni de culoare" în ecranul de administrare pentru temă?

Presupun că tema ta are un fel de panou de opțiuni care îți permite să alegi opțiunile de culoare, așadar pentru a o dezactiva depinde de tema în sine, dar ar trebui să fie într-unul dintre fișierele temei. A ști despre ce temă vorbești ar ajuta.

Actualizare

există unele acțiuni care rulează implicit atunci când wp_head este declanșat și pentru a le elimina folosește:

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);

în afară de asta, caută add_action('wp_head' ... în fișierele temei și pluginuri.

24 mar. 2011 14:41:37
Comentarii

mulțumesc pentru răspunsuri. Mă joc cu tema Twenty Ten, care a fost inclusă în WordPress-ul pe care l-am descărcat. Dacă caut cu "grep" pentru "wp_head", există doar o singură apariție - apelul în header.php. Nu pot găsi niciun "add_action('wp_head')". Totuși, se pare că ceva este apelat de wp_head(), deoarece HTML-ul final include un număr de tag-uri unde era wp_head(), inclusiv un stil CSS pentru body (implementând alegerea mea de culoare din ecranul de administrare). Deci, presupun că întrebarea mea este, unde este codul care face asta și pot să-l ocolesc? Mulțumesc.

User User
24 mar. 2011 14:50:27

@ephemeral: mi-am actualizat răspunsul

Bainternet Bainternet
24 mar. 2011 15:04:56

@ephemeral: mă bucur că am putut ajuta.

Bainternet Bainternet
24 mar. 2011 15:16:39

Perfect. Exact ceea ce aveam nevoie. Am reușit să modific tag-ul <link ref="canonical" ... pe care WordPress îl afișează automat cu apelul wp_head() prin eliminarea funcției implicite care îl generează astfel: remove_action('wp_head','rel_canonical');. Apoi am înregistrat propria mea funcție astfel: add_action('wp_head', 'my_custom_rel_canonical'); și am adăugat tot acest cod în template-ul header.php deoarece trebuie să fac asta acolo în loc de template-ul obișnuit functions.php. Deci acum știu că funcționează foarte bine. Mulțumesc Bainternet.

racl101 racl101
22 feb. 2014 00:45:48