Kaip paruošti „WordPress“ temą „WooCommerce“

Padarykite savo „WordPress“ temą „WooCommerce“ suderinamą su naudingais šių fragmentų fragmentais

Taigi norite pridėti parduotuvę prie savo temos – nuostabu! „WooCommerce“ yra puikus pasirinkimas. Techniškai kalbant VISOS temos yra suderinamos su „WooCommerce“, nes tai yra papildinys. Teoriškai bet koks papildinys turėtų veikti su bet kuria „WordPress“ tema (kuri tinkamai užkoduota)..


Kaip temos kūrėją, galbūt norėsite patikslinti „WooCommerce“ produkciją, kad jis geriau atitiktų jūsų temą arba galutiniams vartotojams suteiktų galimybių, kurių „WooCommerce“ nustatymuose nėra lengvai pasiekiama (pvz., Pakeiskite parduotuvėje esančių stulpelių skaičių). Žemiau rasite naudingų fragmentų, kuriuos galite naudoti teikdami „geresnį“ „WooCommerce“ palaikymą jūsų tema ir (arba) pakeisdami dalykus, susijusius su jūsų konkrečiu dizainu.

Svarbu: Daugelyje žemiau pateiktų fragmentų naudojamos funkcijos, prieinamos tik „WooCommerce“. Taigi įsitikinkite, kad šie fragmentai nėra tiesiog įmesti į jūsų funkciją .php failo apačioje, tema, sukurta paskirstyti. Jei ketinate dalintis savo tema su kitais ar parduoti, būtinai įdėkite fragmentus į savo failą, įkeltą tik tada, kai aktyvus „WooCommerce“ papildinys..

Patikrinkite, ar įjungta „WooCommerce“

Savo temose norėčiau apibrėžti pasirinktinį konstantą, kurį galima naudoti norint patikrinti, ar „WooCommerce“ įgalinta. Aš galiu įtraukti failus ar paleisti funkcijas tik tada, kai aktyvi „WooCommerce“ (žr. Svarbų pranešimą aukščiau, jei dar to nepadarėte)..

// Pridėkite naują konstantą, kuri grįžta, jei aktyvi „WooCommerce“
define ('WPEX_WOOCOMMERCE_ACTIVE', class_exists ('WooCommerce'));

// Tikrinama, ar aktyvi „WooCommerce“
if (WPEX_WOOCOMMERCE_ACTIVE) {
// Daryk ką nors...
// Pavyzdžiui, naujo failo įtraukimas su visais jūsų „Woo“ redagavimais.
}

Paskelbkite „WooCommerce“ palaikymą

Tai yra pirmas ir svarbiausias kodo fragmentas, pridedamas prie jūsų temos, „įgalinantis“ „WooCommerce“ palaikymą ir neleidžiantis įskiepio įspėjimams, galutiniam vartotojui reiškiančiam, kad tema nėra suderinama..

add_action ('after_setup_theme', function () {
add_theme_support ('internetinė prekyba');
});

Pašalinkite „WooCommerce CSS“

Asmeniškai aš labiau nepaisau „WooCommerce“ stilių, kad būtų išvengta bet kokių galimų trečiųjų šalių „WooCommerce“ papildinių problemų. Tačiau jei norite pašalinti visus „WooCommerce“ stilius, tai labai lengva.

Šis fragmentas skirtas pašalinti VISUS „WooCommerce“ stilius:

// Pašalinkite visus „Woo“ stilius
add_filter ('woocommerce_enqueue_styles', '__return_empty_array');

Šis fragmentas yra sąlyginio tam tikrų CSS stilių pašalinimo pavyzdys:

funkcija wpex_remove_woo_styles ($ stiliai) {
unset ($ stilius ['woocommerce-general']);
unset ($ stilius ['woocommerce-layout']);
unset ($ stilius ['woocommerce-smallscreen']);
grąžinti $ stilius;
}
add_filter ('woocommerce_enqueue_styles', 'wpex_remove_woo_styles');

Įgalinti „WooCommerce“ produktų galeriją, mastelio keitimą ir „Lightbox“ (v3.0 +)

„WooCommerce 3.0“ jie pristatė naują produktų galeriją, mastelį ir „lightbox“. Visi jie turi būti įgalinti naudojant „add_theme_support“, jei norite juos naudoti savo temoje.

add_theme_support ('wc-produktas-galerija-slankiklis');
add_theme_support ('wc-produktas-galerija-mastelis');
add_theme_support ('wc-produktas-galerija-šviesos dėžutė');

Pašalinkite parduotuvės pavadinimą

Daugybė temų jau turi archyvų pavadinimų rodymo funkcijas, todėl šis kodas pašalina papildomą pavadinimą iš „WooCommerce“, o tada geriau jį paslėpti per CSS.

add_filter ('woocommerce_show_page_title', '__return_false');

Pakeiskite parduotuvės archyvo pavadinimą

Jei jūsų tema naudoja archive_title () arba get_archive_title () funkcijas norėdama parodyti savo archyvų pavadinimą, galite lengvai pakoreguoti ją naudodami filtrą, kad patrauktumėte produkto puslapio pavadinimą, o ne parduotuvės archyvo pavadinimą..

funkcija wpex_woo_archive_title ($ title) {
if (is_shop () && $ shop_id = wc_get_page_id ('parduotuvė')) {
$ title = get_the_title ($ shop_id);
}
grąžinti $ titulą;
}
add_filter ('get_the_archive_title', 'wpex_woo_archive_title');

Pakeiskite parduotuvėje rodomų produktų skaičių

Naudojama norint pakeisti, kiek produktų parduotuvėje ir produktų archyvuose rodoma viename puslapyje (kategorijos ir žymos).

// Pakeiskite „WooCommerce“ parduotuvių pranešimus viename puslapyje
funkcija wpex_woo_posts_per_page ($ cols) {
grįžti 12;
}
add_filter ('loop_shop_per_page', 'wpex_woo_posts_per_page');

Pakeiskite parduotuvėje rodomų stulpelių skaičių vienoje eilutėje

Nesuprantu, kodėl „WooCommerce“ veikia tokiu būdu, tačiau jūs negalite tiesiog pakeisti filtro „loop_shop_columns“. Taip pat turite pridėti unikalias klases prie kūno žymės, kad stulpeliai veiktų. Nors „Woo Shortcodes“ turi „Div“ įvyniojimą su teisingomis klasėmis, kurių parduotuvių puslapiuose nėra, štai kodėl mums reikia dviejų funkcijų.

// Pakeiskite parduotuvių stulpelius
funkcija wpex_woo_shop_columns ($ columns) {
grįžti 4;
}
add_filter ('loop_shop_columns', 'wpex_woo_shop_columns');

// Pridėkite teisingą parduotuvių kolonų kūno klasę
funkcija wpex_woo_shop_columns_body_class ($ klasės) {
if (is_shop () || is_product_category () || is_product_tag ()) {
$ klasės [] = 'stulpeliai-4';
}
grąžinti $ klases;
}
add_filter ('body_class', 'wpex_woo_shop_columns_body_class');

Pakeiskite „Next & Previous Pagination“ rodykles

Šis fragmentas leis jums pritaikyti parduotuvėje esančias puslapių rodykles, kad jos atitiktų jūsų tema.

funkcija wpex_woo_pagination_args ($ args) {
$ args ['prev_text'] = '';
$ args ['next_text'] = '';
grąžinti $ args;
}
add_filter ('woocommerce_pagination_args', 'wpex_woo_pagination_args');

Pakeiskite „OnSale“ ženklelio tekstą

Ypač naudinga svetainėse, naudojančiose kitokią kalbą, arba norint pašalinti šauktuką, kurio nesu aš didžiulis gerbėjas.

funkcija wpex_woo_sale_flash () {
grįžti ''. esc_html __ („Pardavimas“, „internetinė prekyba“). '';
}
add_filter ('woocommerce_sale_flash', 'wpex_woo_sale_flash');

Keisti Produktų galerijos miniatiūrų stulpelius

Galbūt norėsite pakeisti atskirų produktų galerijos miniatiūrų stulpelių skaičių, atsižvelgiant į išdėstymą, ir ši funkcija atliks būtent tai.

funkcija wpex_woo_product_thumbnails_columns () {
grįžti 4;
}
add_action ('woocommerce_product_thumbnails_columns', 'wpex_woo_product_thumbnails_columns');

Pakeiskite rodomų susijusių produktų skaičių

Naudojamas norint pakeisti susijusių produktų, rodomų viename gaminio puslapyje, skaičių.

// Nustatykite susijusius produktus, kad būtų rodomi 4 produktai
funkcija wpex_woo_related_posts_per_page ($ args) {
$ args ['posts_per_page'] = 4;
grąžinti $ args;
}
add_filter ('woocommerce_output_related_products_args', 'wpex_woo_related_posts_per_page');

Pakeiskite susijusių ir parduotų produktų skilčių stulpelių skaičių eilutėje

Kaip ir parduotuvėje, jei norite tinkamai pakeisti susijusių produktų ir parduodamų produktų stulpelių skaičių atskiruose produktų puslapiuose, turite filtruoti stulpelius ir atitinkamai pakeisti kūno klases..

// Filtruokite stulpelius
funkcija wpex_woo_single_loops_columns ($ stulpelių) {
grįžti 4;
}
add_filter ('woocommerce_up_sells_columns', 'wpex_woo_single_loops_columns');

// Filtruokite susijusius argus
funkcija wpex_woo_related_columns ($ args) {
$ args ['stulpeliai'] = 4;
grąžinti $ args;
}
add_filter ('woocommerce_output_related_products_args', 'wpex_woo_related_columns', 10);

// Filtruokite kūno klases, kad pridėtumėte stulpelių klasę
funkcija wpex_woo_single_loops_columns_body_class ($ klasės) {
if (is_singular ('produktas')) {
$ klasės [] = 'stulpeliai-4';
}
grąžinti $ klases;
}
add_filter ('body_class', 'wpex_woo_single_loops_columns_body_class');

Į savo meniu pridėkite dinaminę krepšelio nuorodą ir krepšelio kainą

Šis fragmentas pridės „WooCommerce“ krepšelio elementą prie jūsų meniu, kuriame bus nurodytos jūsų krepšelio elementų kainos. Be to, jei jūsų svetainė yra įgalinusi „Font-Awesome“, joje bus rodoma maža krepšio piktograma. Svarbu: Šios funkcijos neturi būti įtrauktos į „is_admin ()“ sąlygines, nes jos priklauso nuo AJAX, kad atnaujintų kainą. Jūs turite įsitikinti, kad funkcijos yra prieinamos, kai „is_admin“) grąžina „true“ ir „false“.

// Įtraukite krepšelio nuorodą į meniu
funkcija wpex_add_menu_cart_item_to_menus ($ elementai, $ args) {

// Įsitikinkite, kad pakeitėte „wpex_main“ į savo meniu vietą !!!!
if ($ args-> theme_location === 'wpex_main') {

$ css_class = 'menu-item menu-item-type-cart menu-item-type-woocommerce-cart';

if (is_cart ()) {
$ css_class. = 'dabartinis meniu punktas';
}

$ elementų. = '
  • '; $ elementų. = wpex_menu_cart_item (); $ elementų. = '
  • '; } grąžinti $ daiktus; } add_filter ('wp_nav_menu_items', 'wpex_add_menu_cart_item_to_menus', 10, 2); // Funkcija grąžina pagrindinio meniu krepšelio nuorodą funkcija wpex_menu_cart_item () { $ output = ''; $ cart_count = WC () -> cart-> cart_content_count; $ css_class = 'wpex-menu-cart-total wpex-cart-total-'. intval ($ cart_count); if ($ cart_count) { $ url = WC () -> krepšelį-> get_cart_url (); } Kitas { $ url = wc_get_page_permalink ('parduotuvė'); } $ html = $ cart_extra = WC () -> cart-> get_cart_total (); $ html = str_replace ('suma', '', $ html); $ išvestis. = ''; $ išvestis. = ''; $ išvestis. = wp_kses_post ($ html); $ išvestis. = ''; grąžinti $ produkciją; } // Atnaujinkite krepšelio nuorodą naudodami AJAX funkcija wpex_main_menu_cart_link_fragments ($ fragmentai) { $ fragmentai ['. wpex-menu-cart-total'] = wpex_menu_cart_item (); grąžinti $ fragmentus; } add_filter ('add_to_cart_fragments', 'wpex_main_menu_cart_link_fragments');

    Išvada

    „WooCommerce“ veiks pagal bet kurią temą pagal numatytuosius nustatymus, tačiau labai lengva padaryti papildomą papildinio palaikymą, kad jis geriau atitiktų jūsų temą. Aš iš tikrųjų parašiau šį įrašą, koduodamas mūsų Niujorko „WordPress Blog & Shop“ temą, todėl dauguma šių pakeitimų yra įtraukti į mūsų temą. Arba, jei norite, galite nusipirkti temą, kad pamatytumėte, kaip viskas buvo padaryta (žiūrėkite failus adresu wpex-new-york / inc / woocommerce) – tai gali būti lengvesnis būdas išmokti tinkamai pridėti pasirinktinį „WooCommerce“ papildinio palaikymą, žiūrint į jau užkoduotą temą.

    Ar yra kokių nors kitų fragmentų, kurie, jūsų manymu, priklauso šiam sąrašui, ar jums būtų naudinga kuriant naujas „WooCommerce“ parengtas temas?

    Jeffrey Wilson Administrator
    Sorry! The Author has not filled his profile.
    follow me
      Like this post? Please share to your friends:
      Adblock
      detector
      map