Մի այսպիսի հոդված ունեմ Ինչպե՞ս էջերում ներառել միայն անհրաժեշտ css-ները և ջավասքրիփթները : Այնտեղ նկարագրված մեթոդը մի թերություն ունի, այն է ՝ փլագինների թարմացման ժամանակ կորչում են փլագինների ֆայլերի մեջ արված փոփոխությունները, և անհրաժեշտություն է առաջանում բեքափներից վերցնել ավելացված կոդերը և դնել տեղը: Բայց կա ավելի լավ մեթոդիկա: Այնպիսի մի մեթոդիկա, որ փլագինները թարմացնելուց հետո ոչ մի փոփոխություն չի կորչում: Գնացինք:
Որեմն փլագինները իրենց սեփական ջավասքրիփթ ու CSS ֆայլերը կցում են ձեր կայքին օգտագործելով վորդպրեսի API-ի այսպես կոչված “հուք”-երը: Փլագինը նախ և առաջ պիտի գրանցի իր css-ը: Դա կատարվաում է հետևյալ կերպ:
wp_register_style( 'ՍթայլիԱնուն', 'ֆայլիանուն.css', ֆայլի դիրեկտորիա);
Որից հետո գրանցված ֆայլը պետք է դնի հերթի մեջ, որպիսի այդ հերթից էջը տպելիս հերթով գրի այդ css-ների հարաբերությունները, սրա պես մի բան՝
<link rel='stylesheet' id='core3.0-css' href='/shCore.css' type='text/css' media='all' /> <link rel='stylesheet' id='core-Default3.0-css' href='/styles/shCoreDefault.css' type='text/css' media='all' /> <link rel='stylesheet' id='theme-Default3.0-css' href='/syntaxhighl' type='text/css' media='all' />
Հերթի մեջ դնում է օգտագործելով հետևյալ ֆունկցիան
wp_enqueue_style( 'ՍթայլիԱնուն' );
Գրանցումը և հերթի մեջ դնելը կատարվում է wp_enqueue_scripts հուքի օգտագործմամբ: Մեզ անհրաժեշտ է գրանցումը և հերթի մեջ դնելը փաթաթել մի ֆունկցիայի մեջ և այդ ֆունկցիային ավելացնել հուքի մեջ:
Այսպես `
add_action( 'wp_enqueue_scripts', 'my_function' ); function my_function() { wp_register_style( 'ՍթայլիԱնուն', plugins_url('ֆայլիանուն.css', ֆայլի դիրեկտորիա) ); wp_enqueue_style( 'ՍթայլիԱնուն' ); }
Հրաշալի է, այս կոդերի աշխատանքի հետևանքով մեր ֆրոնտենդում հայտնվում է
<link rel='stylesheet' id='ՍթայլիԱնուն-css' href='ֆայլի դիրեկտորիա/ֆայլիանուն.css' />
ահա փլագինը ներառեց իր սթայլերը: Ուշադրություն դարձրեք id ատրիբուտին, այն մեզ հետագայում անհրաժեշտ է լինելու:
Լավ, նորից վերհիշենք մեր խնդիրը, մեզ պետք չի, որ այս սթայլը օգտագործվի մեր վորդպրես կայքի բոլոր էջերում: Իսկ նախորդ լուծումը պահանջում էր անընդհատ վերադարձնել փլագինների մեջ մեր գրած կոդը դրանց թարմացումից հետո:
Սակայն վորդպրեսը մեզ տալիս է հնարավորություն առանց փլագիններին կպնելու կառավարել արտաքին սթայլերի և ջավասքրիփթ ֆայլերի ներառումը այս կամ այն էջի մեջ: Դա կատարվում է wp_dequeue_style() ֆունկցիայի օգնությամբ: Անում ենք այսպես, նայում ենք html-ը, գտնում ենք սթայլի id ատրիբուտը: Մեր դեպքում ատրիբուտը այսպիսին է ՝ ՍթայլիԱնուն-css: Իրենից ներկայացնում է սթայլի գրանցման անունը գումարած “-css” վերջածանցը: Վերցնում ենք id-ին առանց վեջածանցի և անում այսպես ՝
wp_dequeue_style( 'ՍթայլիԱնուն')
բայց սա դեռ վերջը չի, սա նորից պիտի փաթաթվի ֆունկցիայով և ավելացվի որպես հուք: Միաժամանակ ֆունկցիայի մեջ կարելի է իրականացնել տրամաբանությունը, թե որ էջերում բացառվեն այս կամ այն սթայլերը և ջավասքրիփթնփրը , իսկ որոնցում ոչ: Կարելի է օգտագործել ստանդարտ վորդպրեսական էջի տեսակը ստուգող ֆունկցիաներ(is_home,is_single,is_category … ), քասթմ ֆիլդեր և ցանկացած այլ ստուգումներ, ելնելով տեխնիկակակն խնդրից:
Ահա մի օրինակ, որտեղ wp-paginate փլագինի css չի ներառվում գլխավոր էջում: Իսկ մի այլ սթայլ ներառվում է միայն փոստերի էջում :
function my_remove_css(){ if(is_home()) { wp_dequeue_style('wp-paginate'); } if(!is_single()) { wp_dequeue_style('ՍթայլիԱնուն'); wp_dequeue_style('ՍթայլիԱնուն'); } } add_action('wp_print_styles','my_remove_css');
Հա մոռացա ասեմ, որ այս վերջին կոդը պիտի գրված լինի ձեր թեմայի functions.php ֆայլում: Դրանից հետո կարող եք Անհանգիստ թարմացնել փլագինները ու ոչ մի բան չի կորչի:
ՀԳ: Անհանգիս մնացեք, ամենալավ տարբերակը գտնելու համար:
Վորդպրես հարթակին վերաբերվող բոլոր նյութերս կարդացեք այստեղ