“Edit with Page Builder Sandwich” товч харагдахгүй байна
Хэрэв та өөрийн сайтын хэрэглэгчийн хэсэгт (frontend) “Edit with Page Builder Sandwich” товчийг харахгүй байгаа бол дараах зүйлсийг туршаад үзээрэй:
Таны Админ мөр (Admin Bar) харагдаж байгаа эсэхийг шалгах
PB Sandwich-ийн засах товч нь сайтын хэрэглэгчийн хэсгийн админ мөр дээр байрладаг. Админ мөр харагдаж байгаа эсэхийг шалгахын тулд удирдлагын хэсэг рүүгээ орж Хэрэглэгчид > Таны профайл (Users > Your Profile) руу очоод Сайтыг үзэх үед хэрэгслийн мөрийг харуулах (Show Toolbar when viewing site) сонголтыг чагталсан эсэхийг дахин шалгаарай.

Та хуудас, нийтлэл эсвэл тусгай нийтлэлийн төрөл (Custom Post Type) дотор байгаа эсэхээ шалгах
Хэрэглэгчийн хэсэгт зөвхөн Нийтлэлүүд (Posts), Хуудсууд (Pages) ба Тусгай нийтлэлийн төрлүүдийг (Custom Post Types) засах боломжтой байдаг. WordPress-ийн арын удирдлагын хэсгийн контент засварлагчаар засах боломжтой зүйлсийг л та хэрэглэгчийн хэсгээс засах боломжтой. Сайтын бусад хэсгүүд болох блогийн нийтлэлийн жагсаалт, бүх нийтлэлийн жагсаалт, ангиллын жагсаалт, 404 хуудас, хайлтын хуудас зэрэг нь таны ашиглаж буй загвар (theme) болон WordPress хамтран үүсгэсэн динамик хуудсууд бөгөөд тэдгээрийг PB Sandwich ашиглан засах боломжгүй.
Одоогийн вэб хуудсыг засах боломжтой эсэхийг мэдэх нэг арга нь таны админ мөр дээр “Edit Post” эсвэл “Edit Page” товч харагдаж байгаа эсэхийг харах явдал юм.
Таны контентыг загвар эсвэл залгаас динамикаар үүсгээгүй эсэхийг шалгах
Хэрэв таны хуудас/нийтлэлийг ямар нэг загвар (theme) эсвэл залгаас (plugin) динамикаар үүсгэсэн бол Page Builder Sandwich-ээр засах боломжгүй (мөн ихэнх бусад хуудас бүтээгч дээр ч мөн адил). Хэрэв таны арын удирдлагын хэсгийн контент засварлагч хоосон мөртлөө сайтынхаа хэрэглэгчийн хэсэгт хуудсаа харахад дүүрэн агуулгатай байвал энэ нь тухайн хуудсыг динамикаар үүсгэсний тод илрэл юм.
Таны хуудсыг динамикаар үүсгэсэн эсэхийг шалгахын тулд вэб хуудасны эх кодыг харна уу (хулганы баруун товчийг дараад “Эх кодыг харах” / “View Page Source” гэснийг сонгоно). “pbs-main-wrapper” гэсэн текстийг хайж үзээд, хэрэв энэ бичвэр огт харагдахгүй байвал таны хуудас динамикаар үүссэн байна гэсэн үг.
Динамикаар үүсгэгдсэн агуулгын цөөн хэдэн жишээг дурдвал:
- Таны хуудас Customizer ашиглан нэмдэг/засдаг олон виджетүүдээс бүрдсэн,
- Таны хуудсыг “нэг хуудаст” (one page) загвараар олон өөр хуудсуудыг нийлүүлэн холбож бүтээсэн (энэ тохиолдолд та хуудсуудыг тус тусад нь засах боломжтой ч нийлүүлсэн нэг хуудсыг засах боломжгүй), эсвэл
- Таны хуудас хамгийн сүүлийн үеийн блог нийтлэлүүдээс бүрдсэн байх.
Эхлээд бага зэрэг контент нэмж үзэх
Агуулга хоосон үед тухайн загвар нь контентыг огт харуулдаггүй, үүнээс болж PBS нь хуудсыг засах боломжгүй гэж андуурах тохиолдол гарч байсан. Ийм асуудал үүссэн эсэхийг шалгахын тулд арын удирдлагын засварлагч дээр хуудас/нийтлэлээ нээж, агуулга дотор ямар нэгэн бичвэр (жишээ нь “hello”) нэмж оруулаад, дараа нь тэндээсээ “Edit with Page Builder Sandwich” товчийг дарж үзээрэй.
Энэхүү зөвлөгөөг өгсөн Mathias Hellquist-д баярлалаа!
Таны хуудсыг өөр хуудас бүтээгч (Page Builder) “эзэмшээгүй” эсэхийг шалгах
Зарим хуудас бүтээгч програмууд таныг WordPress-ийн үндсэн контент засварлагч эсвэл тухайн бүтээгчийн өөрийнх нь засварлагчийн аль нэгийг сонгохыг шаарддаг. Хэрэв та өөр хуудас бүтээгч ашиглан хуудсаа өмнө нь зассан бол тухайн хуудас бүтээгч нь контентыг аль хэдийн “өөрийн болгож”, бусад контентын дэгээ/шүүлтүүрүүд (hooks/filters) ажиллах боломжгүй болсон байж болзошгүй. Үүнээс болоод заримдаа Page Builder Sandwich таны контент хаана байгааг илрүүлж чадахгүй тул засах зүйл байхгүй гэж үзэн засах товчийг харуулахгүй байж болно.
Үүнийг засахын тулд тухайн тодорхой хуудас/нийтлэл дээр тэрхүү хуудас бүтээгчийг ашиглахаас татгалзаж, зөвхөн WordPress-ийн үндсэн контент засварлагчийг ашиглах сонголтыг хийнэ үү.
Тухайн хуудсыг засах эрх танд байгаа эсэхийг шалгах
Хэрэв та тухайн хуудсыг засах эрхгүй бол засварлах товч харагдахгүй. Жишээлбэл, хэрэв та нийтлэлч (editor) эсвэл хувь нэмэр оруулагч (contributor) бөгөөд сайт дээр блогийн нийтлэл, нийтлэл бичих боломжтой байлаа ч энэ нь нүүр хуудас эсвэл холбоо барих хуудсыг засаж чадна гэсэн үг биш юм. Хэрэв таны админ мөр дээр “Edit Post” товч харагдаж байвал та үүнийг PB Sandwich ашиглан засах боломжтой байх ёстой. Хэрэв шаардлагатай бол сайтынхаа админаас засах эрх олгохыг хүсээрэй.
PB Sandwich-ийг ажиллахад саад болж буй Javascript алдаа байж магадгүй
PB Sandwich нь Javascript-ийг ихээхэн ашигладаг. Хэрэв таны сайт дээрх бусад скриптүүдээс Javascript-ийн алдаа гарч байвал энэ нь PB Sandwich-ийг ажиллахад саад болж магадгүй юм. Ийм асуудал байгаа эсэхийг шалгахын тулд та хөтөчийнхөө хөгжүүлэгчийн консолыг (developer console) нээж алдаа байгаа эсэхийг шалгаж болно.
Үүнийг шалгахдаа Chrome ашиглахыг зөвлөж байна. Хуудсан дээрх дурын зүйл дээр хулганы баруун товчийг дараад “Inspect” сонголтыг дарна уу. Энэ нь таны хөтөчийн доод хэсэгт шинэ хэсэг гаргаж ирэх бөгөөд тэндээс “console” таб дээр дарна. Хэрэв ямар нэг алдаатай бол танд дараахтай төстэй зүйл харагдах болно:

Хэрэв алдаа гарсан бол скриптийн нэр дээр дарж эсвэл хулганаа аваачин уг алдаа хаанаас үүсэлтэй болохыг мэдэж авах боломжтой:

Эдгээр алдаанууд нь таны загвар эсвэл бусад нэмэлт залгаасуудаас үүдэлтэй байж болно. Эдгээр алдааг зассанаар 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 асаалттай байна гэсэн үг.

Үүнийг хэрхэн унтраах талаарх дэлгэрэнгүй зааврыг CloudFlare & Rocket Loader Compatibility нийтлэлээс уншина уу.
Би дээрх бүгдийг хийсэн боловч засварлах товч харагдахгүй хэвээр байна!
За ингээд, дээрх шийдлүүдийн аль нь ч тус болоогүй бол яагаад харагдахгүй байгаа болон үүний тулд юу хийх ёстойг тайлбарлах цаг нь болжээ. Бэлэн үү? Тэгвэл эхэлцгээе!
“Яагаад” гэдгийн учир (Техникийн бус энгийн үгээр)
Page Builder Sandwich нь таны хуудас/нийтлэлийн агуулга хаана байрлаж байгааг мэдэх хэрэгтэй байдаг. Бид үүнийг WordPress тухайн нийтлэлийн агуулгыг ачаалах үед түүнийг чагнаж, тухайн талбарыг “тэмдэглэх” замаар хийдэг тул бүх зүйл ачаалагдсаны дараа чухал хэсгүүд хаана байгааг олж тогтоох боломжтой болдог.
Заримдаа зарим залгаасууд энэ процессыг дарж эсвэл алгасаад өөрсдийн аргаар контентыг ачаалахыг оролддог. Зарим тохиолдолд энэ нь зүгээр байдаг боловч ялангуяа үндсэн нийтлэлийн агуулгыг ачаалахад зарим залгаасуудын хэвийн ажиллагааг зогсооход хүргэж болзошгүй юм. Өөр залгаас энэ ачаалах процессыг алгасах үед бидний хийсэн “тэмдэглэгээ” алдагдаж болох бөгөөд засварлагч ажиллах цаг болоход таны контент хаана байгааг олж чадахгүйд хүрдэг. Иймээс засах товч гарч ирэхгүй байна! Түүнчлэн хуудсанд контент нэмдэг зарим залгаасууд, жишээлбэл сошиал сүлжээнд түгээх зарим залгаасууд яг үүнээс болж ажиллахаа больсон байж болохыг та анзаарч магадгүй юм.
“Яагаад” гэдгийн учир (Техникийн нэр томьёогоор)
Page Builder Sandwich нь таны хуудас/нийтлэлийн агуулга хаана байгааг мэдэх шаардлагатай бөгөөд үүнийг the_content шүүлтүүртэй холбогдон таны үндсэн контентын гадуур бүрхүүл (wrapper) нэмэх замаар гүйцэтгэдэг. Зарим залгаасууд үүнийг дарж, оронд нь цаашдын явцад get_the_content() функцээр контентыг шууд дарж бичдэг. Харамсалтай нь ингэж хийх нь БҮХ the_content шүүлтүүрүүдийг дуудагдахаас сэргийлдэг тул PBS-ийн бүрхүүл алга болдог байна. Мөн өөр бусад залгаасуудын өөрчлөлтүүд ч адил алга болно.
Угтаа get_the_content()-ийг ашиглахад буруу зүйл байхгүй ч, хэрэв үүнийг бүх the_content шүүлтүүрүүд ажилладаг ердийн the_content() дуудлагын оронд үндсэн query болон дан нийтлэлийн загвар (single post template) хуудас дотор ашиглавал сөрөг нөлөө гарч болзошгүй.
Үүнийг шийдвэрлэхийн тулд юу хийх вэ
Page Builder Sandwich-ийн “тэмдэглэгээ” байхгүй байгаа эсэхийг шалгахын тулд та өөрийн хуудас/нийтлэл рүү хэрэглэгчийн талаас зочилж, системд нэвтэрсэн байх үедээ хуудасны эх кодыг харах хэрэгтэй. Код дундаас дараах мөрийг хайж үзээрэй:
data-name="main-content"
Хэрэв та үүнийг олж харвал хаа нэгтээ зүгээр л Javascript-ийн асуудал байж болох тул өөрийн ашиглаж буй загвар болон залгаасуудаа бидэнд мэдэгдээрэй, бид үүнийг засах боломжтой.
Харин үүнийг олж чадахгүй бол энэ нь таны загвар (эсвэл ямар нэгэн залгаас, гэхдээ хуудас эсвэл блогийн нийтлэл бол ихэнх тохиолдолд загвар байдаг) нийтлэлийн контенттой ямар нэгэн үйлдэл хийж байна гэсэн үг юм. Хэрэв ийм зүйл болсон бол та загвар зохиогчтой холбоо барьж, энэ асуудлын талаар мэдэгдэх хэрэгтэй! Та тэдэнд алдааг олж засварлахад туслах үүднээс дээр дурдсан техникийн “яагаад” гэсэн тайлбарыг үзүүлж болно 🙂
Хэрэв та PHP кодоор өөрөө оролдож чадахаар бол нийтлэлийн контентыг хариуцдаг загвар файлыг олоод үүнийг засаж үзэх боломжтой. Бидний олж мэдсэн нэг шийдэл нь дараах дуудлагыг:
$content = get_the_content();
дараахаар солих явдал юм:
ob_start();
the_content();
$content = ob_get_clean();<br>
Тайлбар: Таны код дээрх PHP хувьсагчийн нэр өөр байж болох ч үндсэн санаа нь адилхан байх ёстой. Хэрэв энэ нь ажиллавал энэ өөрчлөлтийг үндсэн загвар дээрээ шууд хийхийн оронд салбар загвар (child theme) үүсгэж хийх нь илүү тохиромжтой. Түүнчлэн энэ өөрчлөлтөөс үүдэж гаж нөлөө гарч болзошгүй тул энэ талаар загвар бүтээгчтэйгээ зөвлөлдөх нь дээр.