in Վորդպրես, ՏՏ

Վորդպրեսս – Ինչպե՞ս էջերում ներառել միայն անհրաժեշտ css-ները և ջավասքրիփթները 2

Մի այսպիսի հոդված ունեմ Ինչպե՞ս էջերում ներառել միայն անհրաժեշտ 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 ֆայլում: Դրանից հետո կարող եք Անհանգիստ թարմացնել փլագինները ու ոչ մի բան չի կորչի:

ՀԳ: Անհանգիս մնացեք, ամենալավ տարբերակը գտնելու համար:

Վորդպրես հարթակին վերաբերվող բոլոր նյութերս կարդացեք այստեղ