Реклама
Подразумевано је систем за коментарисање ВордПресс-а страшно неадекватан - једна од мојих највећих замерки је да треба објавити коментар, страница се мора освежити. Можете пребацити се на систем треће стране попут Ливефире [Брокен УРЛ Ремовед] или Дискус 3 начина за подстицање коментара на вашем Вордпресс блогуДобијање коментара на вашем блогу одличан је мотиватор да наставите даље са дугим потезом који блогира. Само што знате да је неко вани, ценити ваш рад се осећа сјајно, али не ... Опширније , али ако бисте радије држали све код куће или радили неку другу врсту прилагођавања, постављање коментара од стране АЈАКС-а је најмање што бисте требали учинити.
Пример овог рада можете видети овде Искористи - када објавите коментар, нећете напустити страницу - уместо тога послаћемо га путем АЈАКС позива, а затим ћемо брзо послати „Хвала вам"Напомена назад. Прочитајте читав туториал.
За коришћење функција које нису ВордПресс као АЈАКС, прочитајте моју претходни водич Туториал о коришћењу АЈАКС-а у ВордПресс-у АЈАКС је изванредна веб технологија која нас је одвела изван једноставне „клик везе, иди на другу страницу“ структура Интернета 1.0. Омогућава веб локацијама да динамички дохваћају и приказују садржај без корисник ... Опширније и обавезно погледајте све чланке који се односе на ВордПресс.
Увод
Постоје два одвојена дела потребна за рад АЈАКС ВордПресс коментара, па вам прво објаснимо оне који ће вам дати преглед целог процеса.
- Неки Јавасцрипт на страници који пресреће корисника који кликне на Додај коментар дугме за слање, које такође чини АЈАКС позив и такође рукује одговор.
- ПХП руковатељ који се укључује у цоммент_пост акцију
Јавасцрипт
Прво, ово ће требати јКуери, као и било шта што је у данашње време забавно у веб развоју. Ако нисте сигурни да ли се већ учитава, идите напред и прескочите до Јавасцрипт кода и свеједно га испробајте - ако имате Фиребуг и записник конзоле каже „јКуери није дефинисан"Када освежите страницу, а затим додајте ову линију у своју датотеку фунцтион.пхп да бисте осигурали да се учитава.
функција гоогле_јкуери () { иф (! ис_админ ()) {вп_дерегистер_сцрипт ('јкуери'); вп_регистер_сцрипт ('јкуери', (" http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"), фалсе); вп_енкуеуе_сцрипт ('јкуери'); }} додавање датотеке ('вп_принт_сцриптс', 'гоогле_јкуери');
Имајте на уму да је то сложени начин учитавања јКуери-а јер ћемо користити најновију верзију са Гоогле ЦДН-а, а то је брже и веће датум од оног који је подразумевано укључен у ВордПресс - тако да би било добро да додате то у сваком случају, чак и ако је јКуери већ учитан другде.
Сада, за стварни Јавасцрипт који ће обрадити образац за коментаре, имамо неколико опција. Најлакше је да само код залијепите свој сингле.пхп предложак - под претпоставком да немате омогућен ни коментар за странице.
Алтернативно, можете залепити у постојећу .јс датотеку коју користи ваша тема или направите нови .јс датотеку у директоријуму тема. Ако одлучите да га ставите у своју засебну .јс датотеку, а не да је залепите директно у предложак теме, обавезно додајте следеће редове у свој фунцтион.пхп, и имајте на уму да се подразумева назив датотеке ајакцомментс.јс у корену фасцикле теме.
додавање ('инит', 'ајакцомментс_лоад_јс', 10); функција ајакцомментс_лоад_јс () {вп_енкуеуе_сцрипт ('ајакцомментс', гет_стилесхеет_дирецтори_ури (). '/ ајакцомментс.јс'); }
Ево Јавасцрипта за обраду обрасца за коментар (или можеш погледајте на пастебину):
Да бисмо разбили код, прво креирамо јКуери објекте у обрасцу за коментаре (што претпоставља да ваш образац за коментар садржи подразумевани цсс ИД од "цомментформ")и додавање празног инфо панела изнад њега који ћемо касније користити за приказивање порука кориснику о напретку објављивања коментара.
цомментформ.субмит користи се за „отмицу“ дугмета за слање. Затим сериализирамо податке обрасца (претварамо их у један дуги низ података), дајемо „Обрада"Кориснику на тој инфо табли и наставите са АЈАКС захтевом. АЈАКС захтев је а стандардни формат, али не баш данас у домену овог водича - довољно је рећи да реагује или на успех или грешка и празнује образац ако је успешан да спречи случајно објављивање истог коментара два пута. Прилагодите поруке и грешке према потреби или додајте неки одговарајући стил у листу стилова своје теме ако желите да се поруке грешке некако издвоје. Последња линија - ретурн фалсе - спречава да образац заврши задану радњу.
ПХП Хандлер
И на крају, потребно нам је нешто што спречава да се страница освежи и кориснику пошаље одговарајући одговор као и обавештавање администратора ако је коментар потребно модерирање, или обавештавање аутора новог коментара. За ово се прикључујемо цоммент_пост радњу која се дешава непосредно након што је додата у базу података и откријте да ли је то био АЈАКС захтев. Додајте ово свом фунцтион.пхп датотека:
(Такође доступно код овог пастебина)
додавање ('коментар_пост', 'ајакифи_цомментс', 20, 2); функција ајакифи_цомментс ($ цоммент_ИД, $ цоммент_статус) { иф (! празно ($ _ СЕРВЕР ['ХТТП_Кс_РЕКУЕСТЕД_ВИТХ']) && стртоловер ($ _ СЕРВЕР ['ХТТП_Кс_РЕКУЕСТЕД_ВИТХ']) == 'кмлхттпрекуест') { // Ако АЈАКС захтјев онда. свитцх ($ цоммент_статус) { случај '0': // обавести модератора о неодобреном коментару. вп_нотифи_модератор ($ цоммент_ИД); случај '1': // Одобрени коментар. јека "успех"; $ цомментдата = & гет_цоммент ($ цоммент_ИД, АРРАИ_А); $ пост = & гет_пост ($ цомментдата ['цоммент_пост_ИД']); вп_нотифи_постаутхор ($ цоммент_ИД, $ цомментдата ['цоммент_типе']); пауза; подразумевано: јека "грешка"; } излаз; } }
Спот Проблемс
Ако се страница и даље освежава уместо да објављује путем АЈАКС-а, вероватно ће то бити један од два проблема. Прво - можда немате учитан јКуери. Инсталирај Фиребуг Како инсталирати Фиребуг на ИЕ, Сафари, Цхроме и Опера Опширније или омогућите Цхроме програме за развојне програмере и проверите у дневнику конзоле да ли има грешака. Ако јКуери не пронађете, вратите се назад на ЈаваСцрипт одељак и прочитајте први део о додавању јКуери својој теми. Друга могућност је да ваша тема направи нешто посебно у обрасцу за коментар, а ИД-а више није „облик коментара“. Проверите изворни код, а затим подесите вар цомментформ = $ ('# коментар коментара') линија у ЈаваСцрипт-у да би била тачна ИД - која би могла функционисати.
Као и увек, спреман сам да помогнем што више, али пошаљите линкове до примерка УРЛ где могу брзо да погледам.
Јамес има диплому о вештачкој интелигенцији и сертификат је ЦомпТИА А + и Нетворк +. Он је водећи програмер МакеУсеОф-а и своје слободно време проводи играјући ВР паинтбалл и таблегамес. Градио је рачунаре још од детета.