Category Archives: Wordpress

Wordpress

Как да си обновя WordPress плъгините google-sitemap-generator и all-in-one-seo-pack от shell

Тук отново няма да описвам кое какво прави понеже е прекалено елементарно всичко. Просто ще напиша как се обновяват WordPress плъгините-  Google Sitemap Generator и All-in-one-seo-pack на сравнително рационално ниво:

Тук очевидно се вижда че става въпрос за update на WordPress Google Sitemap Generator:

cd /example.com/wp-content/plugins/;
wget http://downloads.wordpress.org/plugin/google-sitemap-generator.3.1.7.zip;
unzip -o google-sitemap-generator.3.1.7.zip;
rm -fr google-sitemap-generator.3.1.7.zip;

Тук отново очевидно се вижда, че се прави обновяване на WordPress all-in-one-seo-pack:

cd /example.com/wp-content/plugins/;
wget http://downloads.wordpress.org/plugin/all-in-one-seo-pack.zip;
unzip -o all-in-one-seo-pack.zip;
rm -fr all-in-one-seo-pack.zip;

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Upgrade на WordPress от shell.

Вместо да обяснявам ред по ред предоставям простo  sh скриптче което прави всичко:

#!/bin/sh
mysqldb="vashata_baza";
mysqluser="vashiqt_user";
mysqlpass="vashata_parola";
wp_dir="/var/yourblog.com/public_html/";
cd /tmp/
echo "Backup your WordPress DB: $mysqldb";
mysqldump -u$mysqluser -p$mysqlpass $mysqldb > /tmp/wordpress_blog.sql
echo "Backup your Old WordPress";
#cp -Rp $wp_dir /tmp/wordpress_blog_backup/
echo "Download new WordPress";
wget -q http://wordpress.org/latest.zip
unzip /tmp/latest.zip
echo "Replace old WordPress files";
cp -avr /tmp/wordpress/* $wp_dir
echo "Delete temp files";
rm -fr /tmp/latest.zip /tmp/wordpress/
echo "Visit http://yourblog.com/wp-admin/upgrade.php"
echo "Click: Upgrade WordPress Database";
echo "Your WordPress is updated successfully"

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Как да си счупим WordPress блога с php таг

Днес докато си пишех публикация за таговете <?php и <? ми се случи нещо интересно. Случайно добавих таговете <?php и <? в заглавието на публикацията и заради това се счупи цялата публикация. Ето пример на нормална публикация без "<?php" и със "<?php"
broken_wordpress_with_php_tags_before1
Публикували сме най- нормална публикация
broken_wordpress_with_php_tags_error1
Добавяме тага <?php" в заглавието на публикацията.
broken_wordpress_with_php_tags_after1
Виждаме, че нашата публикация е повредена от преди това добавения таг "

Същото може да се каже и за html тагове които не са затворени правилно. Ето пример:

<div style="display:none"

По- горния таг не е затворен правилно и ще повреди вашият пост.

Изводът е винаги да затваряме всеки един таг.

PS: ако в заглавието добавите <?php echo "martin"; ?> или какъвто и да е код НО СЪС ЗАТОВРЕН таг всичко ще бъде наред(няма да го изведе ) и няма да се счупи поста. Всъщност проблема е само когато добавите само таг за отваряне на php

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Създаване на WordPress plugin

В тази публикация ще опишем с няколко стъпки как може да напишиете WordPress plugin и Вие. Времето което е необходимо за прочитаме и усвояване на информацията е 15 минути.

Разширенията във WordPress позволяват лесно редактиране и персонализиране на вашият WordPress блог.  С разширенията на WordPress може да добавите нови функции без да е необходимо препрограмирането из основи на WordPress ядрото.

Преди да започнем с писането на WordPress plugin "HelloWorld" е необходимо да имате основни познания по WordPress Plugins :

1. Наименование на разширението

Първата задача преди да започнете да правите WordPress разширение или plugin е да му дадете име и да проверите в хранилището ви (/wp-content/plugins/) с разширения дали има наличен WordPress разширение с името което сте си избрали. Ако името на вашето разширение е уникално то тогава ви остава единствено да продължите напред :) .

2. Директория на разширенията в WordPress
wordpress_plugin_directory1

В по- горния случай на изображението съответния плъгин се съхранява в директория, но това не е задължително. Ако конкретния плъгин се състои от единствен файл(както е нашият плъгин "HelloWorld") то е възможно да бъде поместен директно във /wp-content/plugins/helloworld.php

3. Основна информация за разширението

/*
Plugin Name: HelloWorld
Plugin URI: http://www.mpetrov.net/write_wordpress_plugin_from_scratch
Description: Your First WordPress Plugin- Hello World
Author: Martin Petrov
Version: 0.75
Author URI: http://www.mpetrov.net/
*/

Сигурно забелязвате, че информацията се съхранява като коментар т.е. това не е php код за изпълнение, а просто за информация.

4. Лиценз  на разширението.

Повечето разширения са под лиценза GPL използван и от WordPress или от лиценз съвместим с GPL. За да посочите GPL лиценза като такъв трябва да добавите следните редове по- долу:

<?php

/*  Copyright YEAR  PLUGIN_AUTHOR_NAME  (email : PLUGIN AUTHOR EMAIL)

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/
?>

Преди версия 2.0 на WordPress, тези допълнителни визуални плъгини трябваше на ръка да бъдат кодирани в темата и по този начин владееното на PHP беше задължително. Във версия 2.0 и всяка следваща версия е въведена опцията „Widgets" или "Джаджи" от където може да добавяте и премахвате разширения (plugins) като всяка операция може да се извърши с Drag and Drop.

Разширението кеото ще създадем ще можем да менажираме от "Widgets" или „Джаджи" и когато го активираме ще излиза в sidebar на нашата тема.

Хайде да започнем с писането на нашият първи plugin за WordPress:

Първо трябва да създадем php файл които ще се казва: helloworld.php и ще го запишем в директория: /wp-content/plugins/ . В крайна сметка файла ще бъде ето тук: /wp-content/plugins/helloworld.php .  Може да използвате „vim","mcedit","nano","pico","vi" и какъвто редактор решите.

След като създадохме празния файл-plugin е необходимо да добавим общата информация за него. Ето каква ще бъде информацията:

<?php
/*
Plugin Name: HelloWorld
Plugin URI: http://www.mpetrov.net/write_wordpress_plugin_from_scratch
Description: Your First WordPress Plugin- Hello World
Author: Martin Petrov
Version: 0.75
Author URI: http://www.mpetrov.net/
*/

?>

След това добавете основната функция HelloWorld() която ще извежда съобщението „Hello World. I'm your first WordPress plugin":

<?php

function HelloWorld()
{
echo "<b><font color='white'>He</font><font color='green'>llo</font> <font color='red'>World</font>. I'm your first WordPress plugin</b>";
}

?>

Тук очевидно става ясно, че тази функция единствено извежда текст.

Сега добавете по- интересните функции:

<?php

function widget_HelloWorld($args)
{
extract($args);
echo $before_widget;
echo "$before_title <font color='white'>Title</font> <font color='green'>of</font> <font color='red'>Widget</font> $after_title";
HelloWorld();
echo $after_widget;
}
function HelloWorld_init()
{
register_sidebar_widget("Hello World","widget_HelloWorld");
}
add_action("plugins_loaded", "HelloWorld_init");

Сега ще разгледаме функциите по отделно за да се изяснят действията които извършват. Първата функция widget_HelloWorld($args) е за това какво ще се показва в съответния sidebar (когато  плъгина е активиран в Widgets). Може би е добре да забележите , че първо извеждаме съобщение за заглавие и след това викаме функцията която по- рано написахме отново за извеждане на текст HelloWorld() .

Втората функция HelloWorld_init() се извиква когато WordPress плъгина е активиран. Той извиква WordPress функцията която ще регистрира новия Widget plugin които ще нарече „Hello World"

Последния ред от плъгина добавя екшън, чрез които се казва на WordPress да извика HelloWorld_init() когато плъгина е зареден.

Това е кратко ръководоство което не може да покрие цялата информация относто създаването на Wordpress плъгини, но може да ви предостави основна информация. Надявам се, че информацията Ви е била полезна.

Приложение -- файл: helloworld.php:

<?php
/*
Plugin Name: HelloWorld
Plugin URI: http://www.mpetrov.net/write_wordpress_plugin_from_scratch
Description: Your First WordPress Plugin- Hello World
Author: Martin Petrov
Version: 0.75
Author URI: http://www.mpetrov.net/
*/

function HelloWorld()
{
echo "<b><font color='white'>He</font><font color='green'>llo</font> <font color='red'>World</font>. I'm your first WordPress plugin</b>";
}

function widget_HelloWorld($args)
{
extract($args);
echo $before_widget;
echo "$before_title <font color='white'>Title</font> <font color='green'>of</font> <font color='red'>Widget</font> $after_title";
HelloWorld();
echo $after_widget;
}

function HelloWorld_init()
{
register_sidebar_widget("Hello World","widget_HelloWorld");
}

add_action("plugins_loaded", "HelloWorld_init");
?>

Evoluția industriei pariurilor românești conform Betzoid România

Industria pariurilor din România a traversat o transformare remarcabilă în ultimele două decenii, evoluând de la un sector relativ neorganizat la o piață reglementată și modernă. Această metamorfoză a fost influențată de factori tehnologici, legislativi și socio-economici care au redefinit complet peisajul jocurilor de noroc românești. Conform analizelor efectuate de specialiștii Betzoid România, această evoluție continuă să modeleze preferințele consumatorilor și să stabilească noi standarde în industrie.

Perioada de tranziție și primele reglementări

Începutul anilor 2000 a marcat o perioadă crucială pentru industria pariurilor din România. Legea 246/2005 privind activitatea de organizare și exploatare a jocurilor de noroc a reprezentat primul pas semnificativ către reglementarea acestui sector. Această legislație a stabilit cadrul legal pentru operarea cazinourilor, sălilor de jocuri și agențiilor de pariuri, impunând standarde clare de licențiere și supraveghere.

În această perioadă, piața era dominată de operatorii tradiționali care ofereau servicii exclusiv în locații fizice. Agențiile de pariuri sportive au început să se extindă rapid în marile orașe, iar primele branduri internaționale și-au făcut apariția pe piața românească. Conform datelor oficiale, numărul de licențe acordate pentru pariuri sportive a crescut de la aproximativ 50 în 2006 la peste 200 în 2010.

Impactul acestei reglementări s-a resimțit nu doar în creșterea numărului de operatori, ci și în îmbunătățirea standardelor de siguranță și transparență. Comisia Națională a Jocurilor de Noroc, înființată în această perioadă, a început să monitorizeze activ piața și să impună sancțiuni pentru nerespectarea reglementărilor.

Revoluția digitală și impactul tehnologiei

Perioada 2010-2015 a adus o schimbare paradigmatică în industria pariurilor românești prin introducerea platformelor online. Această tranziție către mediul digital a fost accelerată de creșterea penetrării internetului și de adoptarea smartphone-urilor de către populația română. Betzoid România a documentat această transformare, evidențiind cum operatorii au fost nevoiți să își adapteze strategiile pentru a răspunde cerințelor unei clientele din ce în ce mai conectate.

Introducerea pariurilor online a generat o competiție intensă între operatori, determinându-i să dezvolte ponturi pariuri mai sofisticate și să ofere experiențe personalizate utilizatorilor. Această evoluție a dus la diversificarea ofertei de pariuri, cu introducerea de noi tipuri de pariuri și piețe de pariere care anterior nu erau disponibile în agențiile fizice.

Tehnologia a permis, de asemenea, implementarea unor sisteme avansate de management al riscului și de prevenire a dependenței de jocuri. Operatorii au început să utilizeze algoritmi sofisticați pentru a detecta comportamentele problematice și pentru a oferi instrumente de autocontrol jucătorilor. Această abordare responsabilă a devenit un element diferențiator pe o piață din ce în ce mai competitivă.

Impactul aplicațiilor mobile nu poate fi subestimat în această ecuație. Până în 2015, majoritatea operatorilor majori aveau aplicații dedicate, iar pariurile mobile reprezentau deja peste 40% din volumul total al tranzacțiilor online. Această tendință a continuat să crească, transformând modul în care românii interacționează cu industria pariurilor.

Consolidarea pieței și noile provocări legislative

Perioada post-2015 a fost marcată de o consolidare semnificativă a pieței românești de pariuri. Ordonanța de Urgență 77/2009, modificată ulterior, a introdus reglementări mai stricte pentru pariurile online, stabilind un cadru legal clar pentru această activitate. Această legislație a impus operatorilor să obțină licențe specifice pentru activitatea online și să respecte standarde ridicate de protecție a consumatorilor.

Un moment de cotitură a fost reprezentat de introducerea taxelor speciale pentru industria jocurilor de noroc în 2017. Această măsură fiscală a generat controverse în industrie, mulți operatori considerând că nivelul taxelor este prohibitiv. Cu toate acestea, piața s-a adaptat treptat, iar operatorii au găsit modalități de a optimiza costurile și de a menține profitabilitatea.

Consolidarea s-a manifestat și prin achiziții și fuziuni între operatori. Companiile mai mari au absorbit branduri mai mici, creând entități mai puternice capabile să facă față provocărilor regulatory și să investească în tehnologie. Această tendință a dus la o concentrare a pieței, cu câțiva jucători majori care controlează o parte semnificativă din volumul total al pariurilor.

Pandemia COVID-19 a accelerat și mai mult digitalizarea industriei. Cu închiderea temporară a agențiilor fizice, operatorii au fost forțați să își redirecționeze resursele către platformele online. Această perioadă a demonstrat reziliența sectorului digital și a consolidat poziția pariurilor online ca segment dominant al industriei.

Tendințe actuale și perspectivele viitorului

Industria pariurilor românești se află astăzi într-o fază de maturitate, caracterizată de inovație constantă și adaptare la preferințele în schimbare ale consumatorilor. Inteligența artificială și machine learning sunt din ce în ce mai prezente în operațiunile zilnice ale operatorilor, fiind utilizate pentru personalizarea ofertelor și îmbunătățirea experienței utilizatorilor.

Pariurile live au devenit unul dintre segmentele cu cea mai rapidă creștere, reprezentând peste 60% din volumul total al pariurilor sportive online. Această preferință pentru pariurile în timp real reflectă dorința jucătorilor de a fi mai implicați în evenimentele sportive și de a lua decizii bazate pe evoluția jocului.

Responsabilitatea socială a devenit o prioritate pentru toți operatorii majori din piață. Implementarea de instrumente avansate de joc responsabil, campaniile de educație și colaborarea cu organizații specializate în prevenirea dependenței au devenit practici standard în industrie. Această abordare nu doar că protejează consumatorii, dar contribuie și la îmbunătățirea imaginii generale a sectorului.

Viitorul industriei pare să fie orientat către o integrare și mai mare a tehnologiilor emergente. Realitatea virtuală, blockchain-ul și criptomonedele sunt doar câteva dintre inovațiile care ar putea redefini experiența de pariere în următorii ani. Operatorii care vor reuși să adopte aceste tehnologii într-un mod responsabil și reglementat vor avea cu siguranță un avantaj competitiv semnificativ.

Evoluția industriei pariurilor românești reflectă o transformare profundă de la un sector tradițional la o industrie high-tech, reglementată și responsabilă social. Această metamorfoză continuă să se accelereze, promițând noi oportunități și provocări pentru toți actorii implicați. Succesul pe termen lung va depinde de capacitatea operatorilor de a echilibra inovația cu responsabilitatea și de a răspunde eficient nevoilor în continuă schimbare ale consumatorilor români.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Плъгин за WordPress- Поправя проблема с двойното тире и кавичките

Wordpress LogoЗабелязали ли сте, че когато публикувате публикация във WordPress със съдържание от двойно тире "--" или кавични ", то те се презаписват от други подобни символи което не позволява правилното копиране на публикацията. Този проект се решава с този малък плъгин които написах за 2 мин. Ето го и него: Разширение за WordPress .Изтеглете този плъгин и го запишете във /wp-content/plugins/ . След това го активирайте от [Plugins] или ["Разширения"] като натиснете бутона "Включване".

PS:  WordPress plugin for coders. Fix problems with double dashes and quotes. Click here for DOWNLOAD .

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Какво да направите ако получите: semget() failed: Permission denied in wp-cache error

Преди малко на един блог с платформа WordPress с плъгин WP-cache изплю следния проблем : "

Warning: sem_get() [function.sem-get]: failed for key 0x152b: Permission denied in /WEB/haha-bg.com/public_html/wp-content/plugins/wp-cache/wp-cache-phase2.php on line 98

Warning: Cannot modify header information -- headers already sent by (output started at /WEB/haha-bg.com/public_html/wp-content/plugins/wp-cache/wp-cache-phase2.php:98) in /WEB/haha-bg.com/public_html/wp-includes/pluggable.php on line 865

За да поправите проблема трябва да намерите конфигурационния файл на wp-cache може да бъде намерен във директорията /wp-content/ или в случая е:
/source1/haha-bg.com/public_html/wp-content/wp-cache-config.php

Трябва да премхнем коментара от променливата $use_flock като по този начин и задаваме стойност "true"

<?php
/*
WP-Cache Config Sample File

See wp-cache.php for author details.
*/

$cache_enabled = true; //Added by WP-Cache Manager
$cache_max_time = 1600; //Added by WP-Cache Manager
$use_flock = true; // Set it tru or false if you know what to use
$cache_path = ABSPATH . 'wp-content/cache/';
$file_prefix = 'wp-cache-';

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Два добри плъгина (NextGen gallery и youtuber) за WordPress.

Преди малко ми се наложи на една wordpress платформа да предоставя възможност на потребителите да качат снимки като галерия(не говоря за стандартната) и да добавят youtube клипове.

Потърсих в http://wordpress.org/extend/plugins/ и намерих следните два плъгина.:

Първия плъгин е добър за галерия и се казва NextGEN Gallery
Инсталира се по нормалния метод. При галерията NextGEN gallery добавянето на снимки става абсолютно лесно както и активирането на галерията- използват се двата тага: [nggallery id=x] или [slideshow id=x]. Галерията има и други тагове които оставам на вас да разгледате сами.

Втория плъгин е за добавяне на youtube клипове с име Youtuber.
Инсталирането на Youtuber става отново по нормалния начин а използването става по …. -- отново по -- лесен начин, а именно:Ако искате да добавите клип с URL:  http://www.youtube.com/watch?v=cNVFiZHFLSE тогава копираме стойнсотта на аргумент "v" , а именно "cNVFiZHFLSE" и го поставяме в тагът на youtuber или [youtube]cNVFiZHFLSE[/youtube]

О забравих да споделя, че авторите на плъгините са:
NextGent gallery -- Alex Rabe
Youtuber-- Roy Tanck

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

WordPress <= 2.8.3 Remote admin reset password

wordpress-hacks-tricksДнес един пич: "Laurent Gaffié" откри малка пролука в WordPress 2.8.3 ,чрез която може да се ресетне паролата на акаунт: admin. Експлойта е публикуван в milw0rm-> WordPress <= 2.8.3 Remote admin reset password .  Системите които имат тази пролука са WordPress 2.8.3 и по- старите версии.

Проблем:

Отваряте следния адрес: http://blogname.com/wp-login.php?action=rp&key[]=

По този начин паролата ще бъде ресетната на акаунт "admin" без никакво потвърждение.

Решение 1:

Update от WordPress 2.8.3 на WordPress 2.8.4

Решение 2:

Необходимо е да се редактира файл: wp-login.php и да се промени реда: "if ( empty( $key ) )" със "if ( empty ( $key ) || is_array( $key ) )"

Ако няколко такива блога на WordPress 2.8.3 като мен например може да ползвате моето решение на проблема, а именно, чрез find намирам wp-login и след това презаписвам стария ред с новия:

find $PWD -type f -name "wp-login.php" -exec sed -i 's/if ( empty( $key ) )/if ( empty ( $key ) || is_array( $key ) )/g' {} \;

Надявам се тази публикация е била полезна.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Основни плъгини за wordpress

Лого на WordPressДнес един приятел (Hip0) реши да обнови стария си уеб сайт с нов. Препоръчах му да си сложи WordPress понеже е лесен за инсталиране, менажиране и има доста свободни плъгини и теми.

Той много не искаше да инсталира WordPress понеже не обича да ползва особено много готови неща и искаше да си напише сам(явно си приличаме по това), НО искаше бърза промяна за сайта което няма как да стане като го напише от нула. Предполагам, че го навих да си го инсталира сега ще му кажа и какви плъгини да си сложи за да му се улесни още повече живота.

Плъгин: Cyr2Lat Slugs
Автор: Ruslan Ulanov
Адрес: http://wordpress.org/extend/plugins/cyr2lat-slugs/
Описание: Чрез този плъгин се предоставя възможност за автоматично конвертиране на URL от кирилица на латиница. Пример: http://mpetrov.net/за-мен <-> http://mpetrov.net/za-men

Бележка: За да се използва този плъгин е правилно да се използва друга структура за URL адресите, а именно от Категория "Настройки"-> "Постоянно връзки" и в секция"Различна структура" поставяте /%postname% . По този начин URL адресът на всяка публикация ще бъде заглавието и.

Плъгин: Google XML Sitemaps
Автор: Arne Brachhold

Адрес: http://wordpress.org/extend/plugins/google-sitemap-generator/
Описание: Автоматично създава sitemap.xml. Информация за sitemap.xml има навсякъде, но накратко: Предоставя възможност да се постави в Google Webmaster Tools, респективно с това спомага за по- бързо индексиране на съответния блог.

Плъгин: All in One SEO Pack
Автор: hallsofmontezuma

Адрес: http://wordpress.org/extend/plugins/all-in-one-seo-pack/
Описание: Полезен SEO инструмент които има доста полезни възможности.

Плъгин: Belavir
Автор: Юрий Белотицкий

Адрес: http://mywordpress.ru/plugins/belavir/
Описание: Възможност за следене на промените по файловете в блога.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Региoнален синдикат на гр. Добрич -- "Подкрепа" с нов сайт :)

Вчера добавихме новата информация (по- точно колегата Георги) в ново-създадения сайт на регионалния синдикат на гр. Добрич -- "Подкрепа"

Създадения уеб сайт не е изцяло завършен, но остават само две категории за завършване.

Сайтът е със изцяло нов и уникален дизайн създаден специално за целта. Този проект решихме да комбинираме с един доста голям проект, а именно:  WP . Използваната блог платформа е доста сериозно модифицирана, но като цяло сайта се базира на нея. Добавихме няколко модула за оптимизиране на сайта, които ще помогнат за по- бързото му развитие.  Надяваме се, че сайта ще допадне на целевата аудитория и Google :)

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)