VPS хостинг от Digital Ocean

Digital Ocean(DO) е компания, която предлага виртуални частни сървъри(VPS) работещи със SSD дискове(вместо стандартните и по-бавни HDD). Компанията се разраства постоянно от началото си през 2011.

DO е предназначен основно за разработчици, системни администратори или хора които като цяло имат някакъв опит с администрирането на сървъри. От друга страна, ако имате желание и хъс, не се плашите лесно от използването на терминал и няма да слагате изключително важни неща на сървъра докато се учите, тогава трябва да пробвате DO. Сайта има изключително много статии които ще ви помогнат с настройването на всякакви сървъри стъпка по стъпка

По мое мнение DO се отличава от конкурентите си по няколко основни фактора::

  • Изключително бързо създаване на нови сървъри
    Процеса на създаване на нов сървър отнема около минута!
  • Лесен за ползване
    Контролния панел от където се контролират всички сървъри е изключително семпъл – можете да извършвате основни задачи като да създавате бекъпи, да следите някои статистики и тн.
  • Цената
    Най-евтиния сървър(в момента на писането на тази статия), който има 512 MB RAM, 1 процесор, 20 GB SSD диск, 1 TB трансфер струва само 5 щатски долара на месец!

Ако добавите и факта, че лесно можете да намерите купони, които да ви дадат 1 или 2 месеца безплатен хостинг, така че да можете да пробвате услугата – офертата е доста добра.

Естествено няма перфектни неща в този свят. За това ви давам и малък списък с неща, които определено могат да се подобрят:

  • Повече статистики
    Въпреки че изключително много ценя семплия контролен панел, определено бих се радвал да видя статистика на използваната памет, както и оставащото свободно място на сървъра.
  • По-лесна промяна на параметрите на сървъра
    В момента ако искате да промените параметрите на съществуващ сървър, можете само да ги увеличите и при това без да получите допълнителното дисково пространство, което обикновенно идва при смяна на плана. В някои от случаите това е напълно приемливо(тъй като ви трябват повече изчислителни ресурси, а не дисково пространство), но понякога имате нужда и от самото дисково пространство. Ако това ви се наложи, процедурата е следната: правите копие на сървъра и създавате нов сървър от това копие; променяте DNS настройките така че те да сочат към новия IP адрес; чакате DNS настройките да се обновят и чак тогава можете да премахнете стария сървър. Доста тромава схема.
  • По-добри известия при технически проблеми
    Въпреки че обикновенно по един или друг начин потребителите се уведомяват ако има някакви проблеми(или със съобщение в контролния панел, или с мейл), понякога се налага да пишете на съпорта след като сте забелязали някакъв проблем само и само от там да ви отговорят, че това е проблем който вече им е известен и работят по отстраняването му – което само губи време и на двете страни.

Естествено сигурно има и други дребни недостатъци, но тези са нещата с които съм се сблъскал и съм намерил за малко досадни.

Освен това съпорта им определено е на ниво(отговарят сравнително навреме и помагат с каквото могат), имат богат избор на операционни системи(за сега няма Windows – пък и на кого му трябва :P), както и на различни пре-конфигурирани сървъри, създадени за определени приложения(като сървър който да се ползва за GitLab например). Както със всички останали VPS-и, можете да правите каквото си поискате със сървъра(стига да не нарушавате правилата за употреба).

Така че ако си търсите ново решение за VPS хостинг, защо не пробвате Digital Ocean и пуснете собствен сървър само за няколко минути? Ако искате да ми помогнете, изключително бих се радвал ако ползвате следния линк за да се регистрирате – https://www.digitalocean.com/?refcode=1ba577bd79ab . В противен случай, просто отидете на техния сайт – https://www.digitalocean.com/ и създайте новия си акаунт.

За укриването на данъци и ниските осигурителни доходи

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

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

По този начи работодателя трябва да плаща по-малко пари за осигуровки. Тъй като работника плаща 40% от осигуровките, той също се “възползва” от тази възможност и “губи” по-малка част от нетния си доход.

От друга страна негативните последици в индивидуален и глобален размер са значително по-големи. А именно:

Негативни последствия за работника:

  • По-малко възнаграждение за годишния платен отпуск.
  • По-ниски обезщетения при майчинство и временна неработоспособност.
  • По-ниски обезщетения при безработица.
  • По-малка вероятност и по-малък размер на кредити.

Негативни последствия за цялата държава:
По-малко средства отиват в държавната хазна. От там съответно изплащането на пенсиите и обезщетенията за пенсионерите и нуждаещите се става по-трудно. Което води до това, че трябва да се взимат пари от бюджета, които по принцип биха се използвали за други цели – било то образование, здравеопазване и тн.

Ако това се случваше в сравнително малки размери, последиците не биха били чак толкова драстични. Проблема е, че ситуацията не е такава.

Тук идва момента да призная, че напълно разбирам защо работодатели и работници прибягват до престъпване на закона, когато говорим за браншове където реалната заплата така или иначе не е много висока.

От друга страна не мога да разбера и не оправдавам браншовете, където фирмите осъществяват достатъчно големи обороти за да могат да си позволят изплащането на реалните осигуровки. Такъв бранш е IT сферата например. Предполагам голяма част от IT фирмите търсят и имат реализация извън страната с клиенти от по-заможни държави(САЩ, Великобритания и тн.) – това им дава възможност да предлагат конкурентни за техния пазар цени докато в същото време осъществяват сравнително високи за България доходи. Дори и да не работят основно с клиенти извън България, някои фирми предлагат доста солени(за българския джоб) цени за услуги като разработване на уебсайтове например. При всички положения, ако фирмата се управлява добре и има добре обучени кадри, реализацията и е почти гарантирана.

Нямам точни числа и данни и не мога да заявя на 100%, че ако по-голямата част от браншовете с високи доходи започнат да отчитат реалния доход на служителите си, ще има осезаема промяна, но съм силно убеден че би било така. За съжаление, стремежа на голяма част от хората в България(а и не само по принцип) е личния напредък а не общия – и докато това е така, шансовете за подобряване на ситуацията у нас ще са все по-ниски.

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

Пролетно почистване

Въпреки че си харесвах темата която намерих и човърках, накрая се уморих от външния и вид(и общия мрачен тон, който тя имаше). Аз съм изключително позитивен и усмихнат човек и ползването на толкова тъмна тема, не изразяваше много добре същността ми.

От може би половин година си бях наумил да сменя дизайна на блога си, но поради други по-важни неща(работа, личен живот и тн.) така и не ми се отдаде тази възможност. Да си призная, факта че визуалните изкуства не ми се отдават много много(мога да направя нов елемент да пасне вече съществуващия дизайн, но не мога да изградя нещо от нулата) също допринесе за забавянето.

Но изведнъж ми светна, че е време да си намеря нова тема. След бързо търсене в Google, се озовах на следната публикация във WPMU Dev – 85 Free Clean and Simple WordPress Themes. Честно казано темата Landscape от същия списък също ми допадна, но впоследствие реших да я пропусна поради тъмните и цветове(предполагам че това е нещо което щеше да е лесно да се оправи, но не ми се занимаваше). Въпреки че не всички теми от върпосния списък биха паснали за блога ми, някои от тях изглеждат доста добре и определено могат да паснат за различни видове сайтове.

В крайна сметка избрах темата Highwind от James Koster(не стигнах до края на списъка защото бях достатъчно впечатлен от тази конкретна тема). Тя е изчистена, приспособява се към всякакви устройства(което старта ми тема не поддържаше) и е центрирана около съдържанието. Темата може да се нагласи така че да е по ваш вкус, чрез използването на заглавни изображения(Header images) и вградения в WordPress Customizer(екран на който можете да променяте различни настройки на сайта и да ги преглеждате в реално време, без промените да засягат сайта за посетителите) дава лесен достъп до основния външен вид на сайта(основните цветове и позицията на страничната лента).

Темата е абсолютно безплата и със отворен код – можете да я намерите както на WordPress.org, така и на GitHub. Бърз преглед на кода ме остави с доброто впечатление, че темата е добре организирана и следва стандартите за код на WordPress. Също така темата е написана с мисълта за дъщерни теми, така че промяната на функционалността и чрез дъщерна тема е изключително лесно.

Прогрес с Multilingual WP

През последните две седмици нямах особено голяма възможност да отделя много време за работа по плъгина, ОБАЧЕ съм горд да заявя че 2 доста големи неща се случиха през това време:

1. Започнах да ползвам плъгина за голям корпоративен сайт

В компанията в която работя в момента получихме задачата да превърнем един ASP.NET сайт в WordPress сайт. Сайта е на два езика и има сравнително много съдържание – добре де, около 70 страници за всеки език и една камара файлове не е чак толкова много, но е значително повече от средностатистическия уеб сайт. Тъй като реших да не иползвам qTranslate когато стане дума за големи многоезични сайтове, реших да изпробвам моя плъгин и да видя как ще се сработи с подобен сайт и нуждите му.

Докато работех по сайта успях да намеря някои малки проблеми, които успях да оправя много бързо. Като цяло нищо сериозно не се появи, което ме кара да се чувствам по-сигурен относно (надявам се)скорошното пускане на плъгина за масова употреба

Също така се натъкнах на един друг проблем на многоезичните сайтове – понякога не всяка страница трябва да е достъпна на всеки език. Понякога искате да покажете специфично съдържание само за конкретен езики/езици. Ето следния пример:

Имате университет и на сайта му сте публикували информация за него – включително адрес, контакти, тн. Също така сте създали страница на майчиния ви език за програмите и намаленията от които местните студенти могат да се възползват – информация, която определено не е подходяща и нужна за чуждестранните ви студенти и тяхното посещение в сайта не трябва да се обременява с тази допълнителна информация. От друга страна сте създали и страница на чужд език, която обяснява какво предлагате на чуждестранните си студенти – отново нещо, което местните студенти няма да имат полза от. В крайна сметка искате да показвате тези страници само на очакваната за тях аудитория.

Почовърках малко тук и там и накрая намерих специфично решение за този сайт. Решението работи сравнително просто – на екрана за редактиране на всяка страница/публикация има панел със отметки за всеки един от активните в момента езици. Когато изберете някой език от този списък, тази страница става напълно недостъпна за съответния език – тя се премахва от навигацията, търсения, дори и ако се опитате да отворите страницата посредством правилния и адрес, ще получите грешка 404 – тоест, че страницата не е намерена. В момента се замислям да добавя тази функционалност към плъгина, обаче определено ще се наложи да поработя върху нея още малко.

2. Първия сайт който ползва Multilingual WP е вече на лице

Добре де – втория сайт, за който знам, но така или иначе не броя themoonwatch.com

Това е сайта за един от отборите които ще участват в състезанието Red Bull X-Alps тази година. Можете да разгледате техния сайт тук – X-Alps – BasqueTeam. Човека който разработи сайта е един от членовете на отбора – Iñigo Arizaga. Той първоначално се свърза с мен във връзка с няколко проблема с плъгина ми, и в последствие продължи да ме оведомява за малките проблеми на които се натъкваше докато разработваше сайта. Това беше изключително полезно за мен и за плъгина и аз много го оценявам Искам да им пожелая късмет, попътен вятър и подходящи метеорологични условия и най-важното – да се насладят на състезанието!

 

Във връзка с това – ако някой друг е успял да подкара сайта си ползвайки Multilingual WP за да го направи многоезичен – чувствайте се свободни да оставите коментар с линк към сайта си, така че аз(и всички останали) да разберат за него.

Миграция към Multilingual WP

След дълга и упорита работа по кода на плъгина за многоезично съдържание, най-накрая се усмелих да го пробвам на истински сайт – моя

Миграцията не беше толкова безпроблемна, колкото ми се искаше, но това се очакваше – така оправих куп малки проблеми, които не бях забелязал до тогава. За сега развитието на плъгина се движи доста добре и се надявам скоро да успея да го пусна официално за всички WordPress потребители(няма да се заемам с определяне на конкретна дата, защото много неща могат да се случат/променят дори само за седмица).

След като добавих поддръжка за страхотния плъгин за sitemaps Google XML Sitemaps(до сега това беше основната причина, поради която не исках да кача плъгина на моя сайт) и подобрявайки поддръжката за таксономиите, реших да кача плъгина на моя сайт и да видя какво ще се случи.

Ако решите да направите същото, моля ви, МОЛЯ ВИ, направете копие на базата с данни – в моя случай не се наложи да го използвам, но е добре да имате едно под ръка в случай че нещо се обърка.

След като активирах плъгина и настроих желаните езици, минах през миграцията на категориите и публикациите(което за 2 езика се случи учудващо бързо). Миграцията мина безупречно и накрая се оказах със съдържание на два езика в новия интерфеис(съдържанието бе мигрирано от qTranslate) – както за публикациите и страниците, така и за категориите и таговете.

Също така реших да ползвам една от възможностите на плъгина, която ми позволява да избера специфичен “slug” за всяка една от таксономиите(освен многоезичните “slug-ове” за всяка категория/таг). Това проработи долу-горе добре и се наложи да оправя няколко бъга свързани с тази опция. Единственото притеснение което може да имате ако ползвате тази опция е за сайтове които вече имат съдържание и са индексирани от търсачките – тъй като най-вероятно повечето линкове към съдържанието ви ще спрат да работят и ще се наложи да използвате плъгин който да пренасочи старите, неработещи линкове към новите. За целта аз иползвах плъгина 404 Redirected – не е особено ефикасен и му липсва поддръжка на регуларни изрази, но тъй като имам само шепа адреси в сайта си, това не беше голям проблем.

В случай че имате повече линкове, най-вероятно би било по-мъдро да използвате плъгин като Redirection – Аз лично не го харесах много, защото няма опция да се изключи автоматичното пренасочване към началната страница когато се отвори страница която не е намерена, но от друга страна той има поддръжка за регулярни изрази, което би направило по-лесно пренасочването на счупените линкове.

Освен тези неща – widget-a за избиране на език няма готово стилизиране – както можете да видите в сайдбар-а в момента текста не е правилно подреден със знамената за всеки език, но тъй като не смятам това за голям проблем ще отложа решаването му за малко. Най-вероятно ще намеря време за него тези дни, но не е сигурно.

Още едно нещо, което за малко да забравя – статистиките(долу-горе) за работата на плъгина в сравнение с qTranslate – честно казано, повечето от цифрите не са много по-ниски, но тъй като сайта ми е сравнително малък, не затрудняваше много qTranslate. Направих по два записа на производителността със qTranslate on и два записа със Multilingual WP – по един автоматичен и един ръчен(разликата е дали сам избирам кои адреси да отворя по време на проверката, или плъгина сам решава).

По-долу са резултатите само от автоматичните записи, тъй като изглеждаше че те са записали повече страници, от ръчните записи(може би плъгина не работи особено точно винаги).

С qTranslate:

WordPress Plugin Profile Report
===========================================
Report date: June 6, 2013
Theme name: Moon Watch
Pages browsed: 3
Avg. load time: 1.8621 sec
Number of plugins: 19
Plugin impact: 82.56% of load time
Avg. plugin time: 1.5373 sec
Avg. core time: 0.1272 sec
Avg. theme time: 0.0281 sec
Avg. mem usage: 137.17 MB
Avg. ticks: 158,059
Avg. db queries : 52.67
Margin of error : 0.1695 sec

Plugin list:
===========================================
P3 (Plugin Performance Profiler) – 0.0017 sec – 0.11%
qTranslate Separate Comments – 0.0451 sec – 2.93%
qTranslate – 0.8806 sec – 57.28%
Other(13 plugins) – 0.6097 sec – 39.68%

Plugin impact with qTranslate

 

С Multilingual WP:

WordPress Plugin Profile Report
===========================================
Report date: June 6, 2013
Theme name: Moon Watch
Pages browsed: 5
Avg. load time: 0.7518 sec
Number of plugins: 18
Plugin impact: 79.91% of load time
Avg. plugin time: 0.6008 sec
Avg. core time: 0.1270 sec
Avg. theme time: 0.0129 sec
Avg. mem usage: 58.95 MB
Avg. ticks: 14,781
Avg. db queries : 82.60
Margin of error : 0.0111 sec

Plugin list:
===========================================
P3 (Plugin Performance Profiler) – 0.0023 sec – 0.38%
Multilingual Wp – 0.1557 sec – 25.92%
Other(16 plugins) – 0.4426 sec – 73.7%

Plugin impact with Multilingual WP

 

Резултатите са приблизителни, тъй като за по-точни резултати трябваше да направя повече тестове за повече страници, но мисля че част информацията която дават е доста красноречива.

За тестовете използвах плъгина P3 (Plugin Performance Profiler) – според мен един страхотен инструмент за разработчици на плъгини(и не само) – не съм сигурен колко точен е в изчисленията които прави, но изглежда доста добре

 

Ами, това е всичко за сега – чувствайте се свободни да пробвате бета версията на плъгина, която можете да изтеглите от GitHub и ми пожелайте късмет с по-скорошното пускане на плъгина за масова употреба!

 

Multilingual WordPress

Multilingual WordPress – това е името на плъгин-а за WordPress по който работя в момента. Този плъгин ще дава възможност на хората ползващи WordPress да създават многоезични версии на съдържанието на сайта им.

Идеята се роди, след като на няколко пъти след като излизаха нови версии на WordPress, qTranslate(това е плъгина който ползвам в момента на писането на този пост за да постигна същата цел) се чупеше по нов странен начин. Автора на този плъгин няма изключително голяма възможност да го поддържа в момента и за това реших да направя нов плъгин, почвайки от нулата, но стараейки се да използвам основно вградени функции на WordPress, за да постигна максимална съвместимост с бъдещите му версии.

Самия проект го почнах към средата на ноември 2012, но поради многото работа и някои лични ангажименти, нямах възможност да работя по него изключително много. В края на февруари обаче най-накрая успях отново да възобновя работата по проекта си и постигнах що-годе значителен напредък

До момента плъгина се държи прилично в изпитателна среда и може да прави следните неща:

  • Поддръжка на неопределен брой езици(добавянето на нови езици е много лесно)
  • Добавяне на отделни текстови редактори(за всеки език) към всички избрани пост-типове(страници/публикации/тн)
  • Различен адрес(URL) за всеки език – освен частта която определя езика, всяка страниця може да има различен “slug” за всеки език – за целта ако ползвате qTranslate, ще имате нужда и от допълнителния плъгин “Qtranslate Slug
  • Различни коментари за всеки език(всеки коментар автоматично се показва само на езика на който е бил написан) – отново ако ползвате qTranslate, ще ви трябва плъгина “qTranslate Separate Comments
  • Бързи кодове, стил qTranslate – “[ :bg]съдържание на български[ :en]съдържание на английски”, както и “[ bg]съдържание на български[ /bg][ en]съдържание на английски[ /en]” и “[ mlwp langs=”bg,en”]Съдържание на български и английски[ /mlwp]”
  • И други дребни неща

Естествено има още време докато плъгина стане достатъчно добре развит и тестван за да бъде публично достъпен на WordPress.org . До тогава ако имате интерес можете да следите проекта в GitHub.

Сватбения Сайт

Аз и Коджи в момента живеем в Истанбул – тя учи в един университет тук – и тъй като повечето от гостите на сватбата ни живеят в България, а някои в САЩ, изпращането на поканите по пощата би било неефикасно и бавно. За това решихме да направим онлайн покани. Първоначално потърсихме за вече готов решение, но не успяхме да намерим нищо което да ни хареса.

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

След това естествено дойде частта с дизайна. Честно казано не съм много добър в създаването на цялостен дизайн за каквото и да е(въпреки че не съм го правил до сега, съм сигурен че няма да се получи кой-знае какво). Така че се замислихме за наши познати дизайнери и за щастие Коджи има приятелка, която се занимава точно с това. Тя също така беше един от първите хора, които разбраха за сватбата. Така че я питахме, дали би искала да направи дизайна за сватбените ни покани. Тя се съгласи и ние и изпратихме няколко примера на неща които харесваме, както и някои идеи които имахме към момента. След седмица/седмица и нещо(тя работеше по поканите в свободното си време, така че това беше доста бързо – нещо което ние много оценяваме! ), тя ни изпрати готовия дизайн. След като го получихме, просто нямахме думи, защото беше наистина много много красив и ние просто се влюбихме в него.

След това дойде моята част – тъй като дизайна използваше основно нестандартни фонтове, аз оставих само динамичния текст(например имената на гостите и отговорите на поканата) истински текст, а за останалото направих няколко цели изображения, използвани като фон на различните елементи.

След като направих основната част, се погрижих за няколко по-дребни детайли. Като например добавянето на анимация докато всички елементи се заредят(изтеглят), която след това изчезва и на нейно място се появява поканата. Също така направих така че отговора да се запазва с AJAX(без страницата да се презарежда).

Тук по принцип има още малко технически подробности, ама те са само в английската версия

Ето и няколко снимки на самата покана:

Invitation - loading

Invitation - main

Invitation - response saved

И на края, но не на последно място отново изразявам благодарността си на Мария – дизайнерката на поканите

Сватбата

Никога не съм си и помислял, че ще се оженя на толкова ранен етап в живота си. Аз ще съм първия от съучениците ми, който ще се ожени/омъжи(освен яко някой не се ожени през следващите два месец или случайно не знам за някой ). Малко е странно като цяло, но нямам проблеми с това – всъщност винаги съм смятал, че имам по-зрели ценности и възприятие за света, в сравнение с повечето от връстниците ми, така че влизането в една продължителна и сериозна връзка не изглежда толкова странно.

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

Коджи е по-голяма от мен(със значително количество години) – някои може да намерят това за ненормално, странно, на някои може да не им прави такова впечатление, тъй като те вярват в чистата и искрена любов и не виждат възрастта като важен фактор. Честно казано, не ме е грижа особено много – в смисъл всеки има право на собствено мнение.

Както и да е, плана за сватбата е страхотен – Коджи измисли невероятна церемония с много символизъм в нея – ние ще направим Handfasting церемония(потърсете в Google ако не знаете какво е това ) в която всеки един от гостите ще може да вземе участие, като запали свещ от факла, която е запалена от първите две свещи(нашите). Супер много се радвам на идеята за церемонията и самата сватба като цяло – тя ще бъде в една хижа в централния Балкан, близо да Габрово. Това е мястото където най-вероятно се срещнахме за първи път(по време на сватбата ще са минали долу-горе 2 години от тогава), въпреки че не си спомняме много много от това :). Около половината от гостите ще са скаути и сватбата ще е повече или по-малко в скаутски дух(тъй като и двамата считаме скаутската идея за важна част от нашия живот).

ПП: И не, Коджи не е бременна

Custom Пермалинкове за йерархични таксономии

Заглавието е доста общо, но дава някаква идея за какво иде реч. Като цяло пермалинковете на WordPress са доста гъвкави, обаче си имат и своите ограничения. Съвсем на скоро докато работех по проекта на един клиент се натъкнах на едно от тях.

Проекта беше за създаване на база за Често Задавани Въпроси, използвайки WordPress. Клиента искаше следната структура за базата(това е опростена версия):

  • Индекс на базата ( http://example.com/faq/ ) [Индекс на цялата база]
    • Основна категория ( http://example.com/faq/category/ ) [Индекс на Основната категория]
      • Публикация в основната категория ( http://example.com/faq/category/post-1-slug/ ) [Преглед на Публикация 1]
      • Под-категория ( http://example.com/faq/category/sub-category/ ) [Индекс на под-категорията]
        • Публикация в под-категорията ( http://example.com/faq/category/sub-category/post-2-slug/ ) [Преглед на Публикация 2]
    • Друга основна категория ( http://example.com/faq/another-category/ ) [Индекс на другата основна категория]

Всичко изглежда нормално(като структура на линковете) за нормалния потребител, обаче WordPress е на друго мнение по въпроса Вместо линк като http://example.com/faq/category/  ние ще можем да видим индекса на основната категория на линк от рода на http://example.com/faq-category/category/. Което както виждате не съвпада съвсем с първоначалната идея. За да оправим този проблем трябва да прибегнем до добавянето на няколко специално написани Permalink правила и функции.

Първата стъпка е да регистрираме новия пост тип(Custom Post Type). Това се случва със следната функция:

Този код ще регистрира новия пост тип, заедно с новата таксономия “FAQ Categories”, която ще използваме за да категоризираме въпросите.

След като регистрираме новия пост тип остава да добавим две функции които да направят така че Permalink-овете да работят както искаме ние

В горния код регистрираме две функции – register_faq_rewrite_rules() и fix_faq_subcategory_query().

Първата функция добавя следните няколко правила:

  • faq/([^/]+)/?$ – това правило ще бъде приложено когато адреса на страницата която се зарежда прилича на “faq/any-character/” – тоест когато имаме начална част “faq/” последвана от всякаква комбинация от символи, без “/”( “([^/]+)” ), евентуално последвана от “/”( “/?” ). Също така тази част трябва да е последната част от адреса на страницата, за да има съвпадение(т.е. няма да има съвпадение, ако адреса е “faq/any-character/something”).

    Когато адреса съвпадне, на текущата страница ще бъде показан архив за категорията(според примера който дадох по-горе) “any-character”.

  • faq/([^/]+)/([^/]+)/?$ – това правило е почти същото като предишното, с изключение на това че вече адреса който би съвпаднал би изглеждал като “faq/any-character/post-slug/”.

    Това ще зареди публикация с кратко име(slug) “post-slug” от категорията за ЧЗВ с кратко име “any-character”.

  • faq/([^/]+)/([^/]+)/([^/]+)/?$ – това правило е почти същото като предишното, с изключение на това че вече адреса който би съвпаднал би изглеждал като “faq/any-character/sub-category/post-slug/”.

    Това ще зареди публикация с кратко име(slug) “post-slug” от категорията за ЧЗВ с кратко име “sub-category”.

Втората функция от друга страна оправя проблема със под-категориите. А самият проблем се състои в това, че когато се опитате да заредите страница с адрес faq/category/child-category/, WordPress ще се опита да зареди публикация с кратко име “child-category” вместо под-категорията с кратко име “child-category”. Самата функция е по всяка вероятност не най-красивото решение на проблема, най-малкото защото трябва да направим една допълнителна заявка към базата данни, но това е единствения начин по който успях да реша проблема Понеже функцията проверява дали има публикации с краткото име “child-category”, ако случайно има такава публикация, може да получите неочаквани резултати

Това е достатъчно за да подкарате секцията за ЧЗВ, обаче в момента ако искате да използвате пълноценно новите адреси на категориите и публикациите, ще трябва да си ги пишете сами. Това е защото WordPress не знае как трябва да генерира линковете така че да съвпадат с нашата идея. За това добавяме още няколко функции:

Горните функции “филтрират” резултата от две вградени в WordPress функции, които се грижат да създадат правилните линкове за всички страници, публикации и архиви на таксономии.

Остава един проблем, който може да не е никак малък за някои потребители – проблема с дубликиращото се съдържание. Има доста голяма вероятност Google или някоя друга търсачка която обхожда сайта ви да не остане очарована от факта, че намира идентично съдържание на два различни адреса(например faq-item/post-2-slug/ и faq/category/sub-category/post-2-slug/). Това може да се избегне с една функция която да препраща потребителите към правилния адрес, но оставям това на вас

Ако искате да видите цялата идея в действите, можете да отидете на Custom Permalinks Test.

2 Луни

Двете Луни

Хората са използвали фазите на Луната за да измерват времето в продължение на столетия. Мисля че днешно време този начин на отмерване на времето не е много често срещан В рамките на тази публикация ще използвам думата “Луна” в смисъла на един пълен лунен цикъл(или приблизително 29.5 дни)

2 Луни не е малко време, имайки в предвид количеството събития(включително живото променящи събития, както глобални така и лични) които могат(и СЕ) да се случат през този период. Усещам че пиша безсмислици, така че ще продължа по същество

Преди около 2 Луни, аз и моята Любов положихме основите на наистина силна духовна(или по-скоро чувствена) връзка. Нито един от двама ни имаше и на идея в какво ще се превърне тя в последствие. И двамата в общи линии се хвърлихме в една връзка, която не би се струвала удачна на повечето хора(обстоятелствата бяха малко осложнени по това време). Просто се пробвахме и оставихме чувствата си на свобода.

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

Тя имаше планове за близкото(и не толкова близко ) бъдеще, докато аз нямах никакви. Това изключително много улесни вписването ми в нейните планове. Тя щеше да се мести в Истанбул в началото на Септември за да продължи висшето си образование в най-добрия университет в Турция. Така че първоначално идеята ми беше да прекарвам половината от времето си тук във Варна и другата половина в Истанбул. Но както споменах преди малко към края на първата ни Луна ни беше доста трудно да не сме заедно.

Това изискваше промяна в моите планове и за щастие аз си бях уредил живота по такъв начин, че да мога да работя от всяко място на света стига да имам достъп до добра връзка с интернет. Това ми дава свободата да променя местоположението си изключително лесно. За това реших да се преместя в Истанбул с нея. Порових се малко в търсачката и открих няколко обяви за работа за WordPress експерти. Изпратих няколко мейла и една от компаниите(C2A) ми отговори и започнахме да работим дистанционно по един проект. След като отидох за малко до Истанбул работих няколко дена от офиса им и те останаха доволни от работата ми и решиха да ме наемат

Сега вече си имаме и наше собствено място в Истанбул – не особено голямо, може би не перфектно, но удобно и наше.

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

Все още не знам дали вярвам в знаци от съдбата или дали има причина нещата да се случват или не, но изглеждаше че цялата ни връзка е пълна със знаци – няма да споделям тук какви точно са били, но определено си мисля че бяха знаци

Чувствам се щастлив и завършен. Чувствам се абсолютен късметлия да имам толкова страхотно(не знам дали има достатъчно силна дума която да я опише, но и тази върши работа) момиче до себе си.

Благодаря ти Любов, за това че споделяш живота и любовта си с мен!

ПП: Съжалявам за липсата на подредба на мислите ми, но просто така излязоха от главата ми – а веднъж излезли няма да ги подреждам на ново