«Խմբագրել Page Builder Sandwich-ով» կոճակը չի հայտնվում

Հեղինակ՝

բաժնում՝

, ,

«Edit with Page Builder Sandwich» կոճակը չի ցուցադրվում

Եթե ձեր կայքի ֆրոնտենդում չեք տեսնում «Edit with Page Builder Sandwich» կոճակը, ահա մի քանի քայլ, որոնք կարող եք փորձել.

Համոզվեք, որ ձեր ադմինիստրատորի գոտին (Admin Bar) տեսանելի է

PB Sandwich-ի խմբագրման կոճակը հասանելի է ձեր ֆրոնտենդի ադմինիստրատորի գոտում (Admin Bar): Համոզվեք, որ ադմինիստրատորի գոտին տեսանելի է՝ անցնելով ձեր կառավարման վահանակ և բացելով Users > Your Profile, և համոզվեք, որ Show Toolbar when viewing site դաշտի վանդակը նշված է:

e5960e581e file w9uN2EeCjm

Համոզվեք, որ դուք էջում, գրառման կամ հատուկ գրառման տեսակի (Custom Post Type) մեջ եք

Միայն Գրառումները (Posts), Էջերը (Pages) և Հատուկ գրառումների տեսակները (Custom Post Types) կարելի է խմբագրել ֆրոնտենդում: Ֆրոնտենդում նյութերը կարող եք խմբագրել միայն այն դեպքում, եթե կարող եք դրանք խմբագրել WordPress-ի կառավարման համակարգի (backend) բովանդակության խմբագրիչով: Ձեր կայքի մյուս հատվածները, օրինակ՝ գլխավոր էջի բլոգային գրառումների ցանկը, բոլոր գրառումների ցանկը, կատեգորիաների ցանկերը, 404 էջերը, որոնման էջերը, WordPress-ի և ձեր օգտագործած թեմայի կողմից ստեղծված դինամիկ էջեր են և չեն կարող խմբագրվել PB Sandwich-ի միջոցով:

Նշաններից մեկը, որ տվյալ վեբ էջը ենթակա է խմբագրման, ադմինիստրատորի գոտում «Edit Post» կամ «Edit Page» տեսնելն է:

Համոզվեք, որ ձեր բովանդակությունը դինամիկ չի գեներացվում ձեր թեմայի կամ որևէ փլագինի կողմից

Եթե ձեր էջը/գրառումը դինամիկ կերպով գեներացվում է թեմայի կամ փլագինի կողմից, ապա այն հնարավոր չի լինի խմբագրել Page Builder Sandwich-ով (և ամենայն հավանականությամբ նաև այլ էջակառուցիչներով): Եթե նկատում եք, որ կառավարման համակարգում (backend) ձեր բովանդակության խմբագրիչը դատարկ է, բայց ֆրոնտենդում էջը դիտելիս այն լի է բովանդակությամբ, ապա սա հստակ ցուցիչ է, որ ձեր էջը դինամիկ է գեներացված:

Ստուգելու համար, թե արդյոք ձեր էջը դինամիկ է գեներացված, դիտեք ձեր վեբ էջի ելակետային կոդը (սեղմեք աջ քլիք և ընտրեք «View Page Source»): Փնտրեք «pbs-main-wrapper» տեքստը. եթե այդ տեքստը ոչ մի տեղ չեք գտնում, ապա ձեր էջը դինամիկ է գեներացված:

Ահա դինամիկ գեներացվող բովանդակության մի քանի օրինակ.

  • Ձեր էջը կազմված է մի քանի վիջեթներից, որոնք դուք ավելացնում/խմբագրում եք Customizer-ի միջոցով,
  • Ձեր էջը կազմված է տարբեր էջերից, որոնք միավորված են «one page» թեմայի կողմից (այս դեպքում դուք դեռ կարող եք խմբագրել առանձին էջերը, բայց ոչ միավորված տարբերակը), կամ
  • Ձեր էջը կազմված է վերջին բլոգային գրառումներից:

Փորձեք նախ որևէ բովանդակություն ավելացնել

Եղել են դեպքեր, երբ թեման ընդհանրապես չի ցուցադրել բովանդակությունը, եթե այն դատարկ է, և սա սխալմամբ ստիպել է PBS-ին կարծել, թե էջը ենթակա չէ խմբագրման: Ստուգելու համար, թե արդյոք պատճառը դա է, խմբագրեք ձեր էջը/գրառումը backend-ի խմբագրիչում, փորձեք որևէ տեքստ ավելացնել բովանդակության մեջ (օրինակ՝ «hello»), ապա այնտեղից սեղմեք «Edit with Page Builder Sandwich» կոճակը:

Շնորհակալություն Mathias Hellquist-ին այս խորհրդի համար:

Համոզվեք, որ ձեր էջը չի «պատկանում» մեկ այլ էջակառուցիչի

Որոշ էջակառուցիչներ առաջարկում են ընտրել կա՛մ WordPress-ի լռելյայն բովանդակության խմբագրիչը, կա՛մ հենց էջակառուցիչի սեփական խմբագրիչը: Եթե արդեն խմբագրել եք ձեր էջը մեկ այլ էջակառուցիչով, հնարավոր է, որ այդ էջակառուցիչն արդեն «յուրացրել» է բովանդակությունը, և բովանդակության այլ hook-երն ու filter-ներն այլևս չեն կարող գործարկվել: Այդ պատճառով, երբեմն Page Builder Sandwich-ը չի կարողանում հայտնաբերել, թե որտեղ է գտնվում ձեր բովանդակությունը, և չի ցուցադրում խմբագրման կոճակը, քանի որ խմբագրելու ոչինչ չկա:

Սա շտկելու համար պարզապես հրաժարվեք այդ կոնկրետ էջի/գրառման համար տվյալ էջակառուցիչի օգտագործումից և ընտրեք WordPress-ի լռելյայն բովանդակության խմբագրիչը:

Համոզվեք, որ էջում խմբագրելու իրավասություններ ունեք

Խմբագրման կոճակը չի հայտնվի, եթե դուք չեք կարող խմբագրել էջը: Օրինակ, եթե դուք խմբագիր (editor) կամ հեղինակ (contributor) եք և կարող եք բլոգային գրառումներ ու հոդվածներ գրել կայքում, դա պարտադիր չէ, որ նշանակի, որ կարող եք խմբագրել գլխավոր էջը կամ կոնտակտային էջը: Եթե ձեր ադմինիստրատորի գոտում տեսնում եք «Edit Post» կոճակը, ապա պետք է կարողանաք խմբագրել այն նաև PB Sandwich-ի միջոցով: Անհրաժեշտության դեպքում դիմեք ձեր կայքի ադմինիստրատորին՝ խմբագրման իրավունքներ ստանալու համար:

Հնարավոր է առկա է Javascript-ի սխալ, որը խանգարում է PB Sandwich-ի աշխատանքին

PB Sandwich-ը մեծապես օգտագործում է Javascript: Եթե առկա են Javascript-ի սխալներ, որոնք առաջանում են ձեր կայքի այլ սկրիպտներից, դա կարող է խոչընդոտել PB Sandwich-ի աշխատանքին: Ստուգելու համար, թե արդյոք պատճառը դա է, կարող եք բացել ձեր բրաուզերի ծրագրավորողի վահանակը (developer console)՝ սխալները տեսնելու համար: 

Այս դեպքում խորհուրդ կտամ օգտագործել Chrome: Աջ քլիք արեք էջի ցանկացած հատվածի վրա, ապա սեղմեք «Inspect» տարբերակը: Սա կբացի նոր պատուհան ձեր բրաուզերի ներքևի մասում. սեղմեք «console» ներդիրի վրա: Եթե սխալներ կան, դուք կտեսնեք մոտավորապես այսպիսի պատկեր.

4acce143a3 file

Եթե իրոք սխալ կա, կարող եք նաև պատկերացում կազմել, թե որտեղից է այն գալիս՝ սեղմելով կամ մկնիկը պահելով սկրիպտի անվան վրա.

abb5a87c67 file ITjVcdhZQU

Այս սխալները կարող են առաջանալ ձեր թեմայից կամ ձեր ունեցած այլ փլագիններից: Այդ սխալների վերացումը կարող է վերականգնել PB Sandwich-ի աշխատանքը:

Եթե ձեր թեման կամ փլագիններից որևէ մեկն է առաջացնում Javascript-ի սխալը, խնդրում ենք տեղեկացնել մեզ էլ. փոստով՝ [email protected] հասցեով, և մենք կանենք հնարավորը խնդիրը լուծելու համար 🙂

Եթե օգտագործում եք CloudFlare, համոզվեք, որ Rocket Loader-ն անջատված է

CloudFlare-ը լայնորեն տարածված անվճար DNS CDN է: Այն հիանալի է, սակայն PBS-ը ներկայումս խնդիրներ ունի Rocket Loader գործառույթի հետ: Rocket Loader-ը բարելավում է Javascript ֆայլերի բեռնման ժամանակը, բայց այն խախտում է PBS-ի սկրիպտների կախվածությունը և կանչերի հերթականությունը: Եթե Rocket Loader-ը միացված է, Page Builder Sandwich-ի խմբագրման կոճակը չի հայտնվի (և Javascript-ի կոնսոլում որևէ սխալ չի ցուցադրվի):

Ստուգելու համար, թե արդյոք ձեր կայքն օգտագործում է CloudFlare-ի Rocket Loader-ը, դիտեք ձեր վեբ էջի ելակետային կոդը (սեղմեք աջ քլիք և ընտրեք «View Page Source»), ապա փնտրեք «rocketscript» տեքստը. եթե գտնեք այդ տեքստը, ապա Rocket Loader-ը միացված է:

e4dff5b8c0 file tPnWvP09FF

Կարդացեք CloudFlare & Rocket Loader Compatibility հոդվածը՝ այն անջատելու ամբողջական հրահանգների համար:


Ես արեցի այդ ամենը, բայց խմբագրման կոճակը դեռևս չկա՛:

Լավ, այս պահին, եթե վերը նշված լուծումներից ոչ մեկը չի աշխատում, հնարավոր է՝ ժամանակն է բացատրել, թե ինչու այն չի հայտնվում և ինչ անել այդ կապակցությամբ: Պատրա՞ստ եք: Գնացի՛նք:

«Ինչու»-ն (ոչ տեխնիկական լեզվով)

Page Builder Sandwich-ը պետք է իմանա, թե որտեղ է գտնվում ձեր էջի/գրառման բովանդակությունը: Մենք դա անում ենք՝ հետևելով, թե երբ է WordPress-ը բեռնում գրառման բովանդակությունը, և «նշելով» այդ հատվածը, որպեսզի երբ ամեն ինչ բեռնվի, կարողանանք գտնել անհրաժեշտ տեղը:

Երբեմն որոշ փլագիններ վերասահմանում կամ շրջանցում են այս գործընթացը և դրա փոխարեն փորձում են բովանդակությունը բեռնել իրենց սեփական եղանակով: Երբեմն դա նորմալ է, բայց որոշակի սցենարներում, հատկապես երբ խոսքը վերաբերում է հիմնական գրառման բովանդակության բեռնմանը, սա կարող է հանգեցնել որոշ փլագինների աշխատանքի դադարեցմանը: Երբ մեկ այլ փլագին շրջանցում է բեռնման այս գործընթացը, մեր կատարած «նշումները» կարող են կորչել, և երբ գալիս է խմբագրիչի միանալու պահը, այն այլևս չի կարողանում գտնել, թե որտեղ է ձեր բովանդակությունը: Հետևաբար, խմբագրման կոճակը չի հայտնվում: Դուք կարող եք նաև նկատել, որ որոշ փլագիններ, որոնք բովանդակություն են ավելացնում ձեր էջին, օրինակ՝ սոցիալական ցանցերում կիսվելու որոշ փլագիններ, նույնպես կարող են դադարել աշխատել հենց այս պատճառով:

«Ինչու»-ն (տեխնիկական լեզվով)

Page Builder Sandwich-ը պետք է իմանա, թե որտեղ է գտնվում ձեր էջի/գրառման բովանդակությունը, և դա անում է՝ կապվելով the_content filter-ի հետ և փաթեթավորող շերտ (wrapper) ավելացնելով ձեր հիմնական բովանդակության շուրջ: Որոշ փլագիններ կարող են վերասահմանել սա և փոխարենը վերագրել բովանդակությունը հետագա ընթացքում get_the_content() ֆունկցիայի միջոցով: Ցավոք, դա անելը խոչընդոտում է the_content-ի ԲՈԼՈՐ filter-ների կանչմանը, և հետևաբար PBS-ի wrapper-ը կորչում է: Ցանկացած այլ փլագինի փոփոխությունները նույնպես կկորչեն:

Ինքնին get_the_content() օգտագործելու մեջ վատ բան չկա, սակայն կարող են առաջանալ անցանկալի հետևանքներ, եթե սա օգտագործվի հիմնական query-ում և առանձին գրառման կաղապարի (single post template) էջում՝ սովորական the_content() կանչի փոխարեն, որտեղ գործարկվում են the_content-ի բոլոր filter-ները:

Ինչ անել այդ կապակցությամբ

Դուք կարող եք ստուգել, թե արդյոք Page Builder Sandwich-ի «նշումները» բացակայում են՝ այցելելով ձեր էջը/գրառումը ֆրոնտենդում և դիտելով էջի ելակետային կոդը համակարգ մուտք գործած (logged in) վիճակում: Փնտրեք կոդի մեջ, թե արդյոք կարող եք գտնել հետևյալ տողը.

data-name="main-content"

Եթե կարողանաք գտնել այն, ուրեմն հավանաբար պարզապես ինչ-որ տեղ Javascript-ի խնդիր կա, և պարզապես տեղեկացրեք մեզ, թե որ թեման և փլագիններն եք օգտագործում, և մենք կկարողանանք շտկել դա:

Բայց եթե չեք կարողանում գտնել այն, ապա հնարավոր է, որ պարզապես ձեր թեման (կամ փլագինը, բայց ամենայն հավանականությամբ թեման, եթե դա էջ է կամ բլոգային գրառում) ինչ-որ բան է անում գրառման բովանդակության հետ: Եթե դա այդպես է, ապա դուք պետք է կապ հաստատեք թեմայի հեղինակի հետ և տեղեկացնեք նրան խնդրի մասին: Կարող եք նաև նրանց ցույց տալ վերը նշված տեխնիկական «ինչու» բացատրությունը, սա կարող է օգնել վրիպազերծման (debugging) գործում 🙂

Եթե ձեզ վստահ եք զգում PHP-ում փոփոխություններ կատարելիս, կարող եք փորձել շտկել այն՝ գտնելով կաղապարի այն ֆայլը, որը մշակում է գրառման բովանդակությունը: Մեր հանդիպած լուծումներից մեկը հետևյալ կանչի փոխարինումն է.

$content = get_the_content();

հետևյալով.

ob_start();
the_content();
$content = ob_get_clean();<br>

Նշում. Ձեր դեպքում PHP փոփոխականը կարող է տարբերվել, բայց սկզբունքը պետք է լինի նույնը: Եթե այն աշխատում է, ապա ավելի լավ կլինի նաև, եթե ստեղծեք դուստր թեմա (child theme)՝ այս փոփոխությունն ուղղակիորեն ձեր թեմայում կիրառելու փոխարեն: Փոփոխության պատճառով կարող են լինել նաև կողմնակի ազդեցություններ, ուստի ավելի լավ է այս հարցով խորհրդակցել ձեր թեմայի հեղինակի հետ: