Архива за 'SQL' категорију

Аутоматизација „бекапа“ базе Вордпрес блога

February 27, 2009
Блогери који користе самостални Вордпрес систем требало би да аутоматизују „бекап“ MySQL базе. Додатак WP-DB-Backup не ради како треба на верзијама 2.7, али зато постоји квалитетно решење --- WP-DBManager.

Последице „чачкања“ WP блога

February 3, 2009

Преместили сте свој WordPress блог, или сте само променили префикс из подразумеваног wp_ у нешто друго (нпр. префикс_) из било ког разлога. Осим што сте то урадили у датотеци wp_config.php, обавили сте и све промене у MySQL бази променивши и префикс у називима табела. Кренули сте да се пријавите у администраторски панел вордпреса, али Вас уместо Контролне табле дочекује порука:

You do not have sufficient permissions to access this page.

Марфи је крив, са све гремлинима, зар не? Да ли је блог отишао у бесповрат? Није, не брините. И за ово постоји решење, и то прилично једноставно.

Наиме, није довољно само променити префикс у називима табела у бази, већ је потребно изменити и префикс у референцама на табеле у бази. „Репови“ су „остали“ у табелама префикс_usermeta и префикс_options. Ако сте користили аналогију приликом постављања префикса приликом инсталације вордпреса па префиксу додали доњу црту као наставак, онда сте на коњу и пар SQL упита решиће проблем. Међутим, ако сте уместо префикс_ изабрали само префикс, мораћете да цео посао обавите ручно.

Важна напомена

Пре сваког „прчкања“ по бази, увек, и то под обавезно, направите резервну копију базе пре него што било шта урадите. Разлог? Не желите да у случају да нешто пође по злу јурцате около и вичете „Ујела ме бува, ујела ме бува!“.

Први корак

Први проблем налази се у пољу meta_key у табели префикс_usermeta. Можете употребити следећи SQL упит (наравно, након што прилагодите зацрњени део синтаксе ситуацији у Вашој бази):

UPDATE `префикс_usermeta` SET `meta_key` = REPLACE(`meta_key`, 'wp_', 'префикс_');

Овде ће бити ажурирани називи следећих записа:

префикс_capabilities префикс_user_level префикс_usersettings префикс_usersettingstime Други корак

Други корак се односи на табелу префикс_options у којој у пољу option_name треба променити запис префикс_user_roles. Поново, може се искористити следећи SQL упит, уз прилагођавање зацрњених делова синтаксе ситуацији у Вашој бази:

UPDATE `префикс_options` SET `option_name` = 'префикс_user_roles' WHERE `option_name` = 'wp_user_roles' AND `blog_id` = 0; Муке моје нико не зна

Ако сте се зезнули па приликом инсталације вордпреса и прављења нове базе задали префикс типа ja уместо ja_, аутоматизацију SQL упитима никако не препоручујем, већ лепо засучите рукаве и одрадите поменуте измене ручно. А други пут, па и тај приликом промене префикса, памет у главу па увек префиксима за табеле додајте доњу црту, злу не требало

Корисна адреса: BeConfused.

Подели:

Kako u WP prebrojati Trackback-ove

December 13, 2008

Većina korisnika Wordpressa zna WP u comment odeljku prikazuje akumulirani broj "odgovora" različitog tipa (bez obzira na tip: komentar, trackback, pingback ) na blog zapis. Postoji nekoliko WP pluginova koji razvrstavaju komentare i trekbekove, ali ih ne prebrojavaju. E, ako vam je potrebna broj pojedinačnih odgovora po tipu onda možete primeniti narednu malu modifikaciju.

Unutar foldera vaše teme, ukoliko većne postoji, kreirjate fajl functions.php i ubacite sledeći kod:

    function tb_count() {     global $wpdb;     global $id;     $count = "SELECT COUNT(*) FROM $wpdb->comments WHERE                                  comment_type = ‘trackback’                                  and comment_post_ID=$id";     return $wpdb->get_var($count); }

Naravno, ovim dobijate broj trackback-ova za pojedinačni blog post označen sa $id, a prebrojavanje po tipu određujete restrikcijom SQL upita na comment_type nivou. Da bi ste prikazali broj trackbackova unutar stranice, pozovite broj sledećom funkcijom:

     <?php echo tb_count(); ?>

 A ako vam recimo treba statistički podatak o ukupnom broju odgovora na celom blogu, po tipu, dovoljno je izbaciti ono ‘comment_post_ID=$id"‘ i globalnu varijablu.