În versiunea recentă WordPress nouă, WordPress a adăugat câteva funcții noi, cum ar fi fundal personalizat, antet personalizat etc., puteți vedea acest lucru în acțiune în tema Twenty Eleven. Contextul personalizat va adăuga un fragment CSS care are efect elementul de fundal, ce dacă doriți doar ca această caracteristică să efectueze un alt element pe care îl specificați? Poate că
,
, sau elemente sau altă etichetă HTML.
În acest tutorial, folosesc Twenty Eleven (în WordPress versiunea 3.4) ca o demonstrație. Mai jos este o funcție care gestionează funcția de fundal personalizat pentru această temă, am găsit-o functions.php fişier:
add_theme_support ('custom-background', array (// Lăsați WordPress să știe ce este culoarea noastră de fundal implicită. // Aceasta depinde de schema noastră de culoare curentă (default-color) => $ default_background_color,));
Și a fost declarat în theme.php fișier în wp-includes director:
funcția add_theme_support (caracteristică $) global $ _wp_theme_features; dacă (func_num_args () == 1) $ args = true; altceva $ args = array_slice (func_get_args (), 1); comutator ($ feature) // Această funcție este atât de lungă, am arătat doar lucrurile de care avem nevoie de caz 'particular-background': if (! ar_array ($ args)) $ args = array (0 => array; $ defaults = array ('default-image' => ',' default-color '=> preview-callback '=> ",); $ jit = isset ($ args [0] ['__ jit']); dezactivat ($ args [0] ['__ jit']); // Mergeți în datele din apelurile anterioare add_theme_support (). Prima valoare înregistrată câștigă. dacă isset ($ _wp_theme_features ['custom-background'])) $ args [0] = wp_parse_args ($ _wp_theme_features ['custom-background'] [0], $ args [0]); dacă ($ jit) $ args [0] = wp_parse_args ($ args [0], implicit $); dacă (definit ('BACKGROUND_COLOR')) $ args [0] ['default-color'] = BACKGROUND_COLOR; elseif (isset ($ args [0] ['default-color']] || $ jit) define ('BACKGROUND_COLOR', $ args [0] ['default-color']); dacă (definit ('BACKGROUND_IMAGE')) $ args [0] ['default-image'] = BACKGROUND_IMAGE; elseif (isset ($ args [0] ['default-image']) || $ jit) define ('BACKGROUND_IMAGE', $ args [0] ['default-image']); pauză;
Putem vedea add_theme_support
este utilizat fără a trece valoarea lui wp-cap-apel invers
parametru (cu excepția default color
), ceea ce înseamnă că va fi apelată funcția implicită de apel invers. În acest caz, asta este _custom_background_cb
. De asemenea, a fost definit în theme.php fişier:
funcția _custom_background_cb () $ background = get_background_image (); $ culoare = get_background_color (); dacă (! $ background &&! $ color) returnează; $ stil = $ culoare? "fundal-culoare: # $ culoare;" : ", dacă ($ background) $ image =" background-image: url ('$ background'); "$ repeat = get_theme_mod (' (repeat-repeat-repeat-repeat-repeat-repeat-repeat-repeat-repeat-repeat-repeat-repeat-repeat- 'pozitie fundal: top $', 'pozitie fundal', 'left'), if ($ in_array ($ position, array "$ attachment = get_theme_mod ('background_attachment', 'scroll'); dacă (! in_array (atașament, array (fix, scroll)) $ attachment = - atașament; $ atașament; "; $ stil. = $ imagine; $ repetare; $ position; $ attachment;;>Observați ceva? Da, fragmentul CSS de care avem nevoie la sfârșitul funcției.
Ce trebuie să facem
În tine functions.php fișier, adăugați următorul cod:
funcția change_custom_background_cb () $ background = get_background_image (); $ culoare = get_background_color (); dacă (! $ background &&! $ color) returnează; $ stil = $ culoare? "fundal-culoare: # $ culoare;" : ", dacă ($ background) $ image =" background-image: url ('$ background'); "$ repeat = get_theme_mod (' (repeat-repeat-repeat-repeat-repeat-repeat-repeat-repeat-repeat-repeat-repeat-repeat-repeat- 'pozitie fundal: top $', 'pozitie fundal', 'left'), if ($ in_array ($ position, array "$ attachment = get_theme_mod ('background_attachment', 'scroll'); dacă (! in_array (atașament, array (fix, scroll)) $ attachment = - atașament; $ atașament; "; $ stil. = $ imagine; $ repetare; $ position; $ attachment;;>Tot ce trebuie este să înlocuiți
body.custom-fond
cu selectorul CSS de care aveți nevoie. Funcția de fundal personalizat va schimba doar fundalul elementului pe care îl definiți, nu întregul site. Aceste fragmente funcționează de asemenea cu vechile versiuni WordPress (versiunea 3.0 sau anterioară). Totul este gata!În mod esențial, mimăm funcționalitatea încorporată, dar ameliorăm-o pentru a se potrivi nevoilor noastre.
Asta e! Sper că vă place acest sfat rapid, aș aprecia orice comentarii.
Actualizați: Acest tutorial a fost actualizat pentru a remedia greșelile menționate în comentariile de mai jos. Dacă observați alte erori, vă rugăm să ne anunțați!