Производство фотообоев в Новосибирске. Интернет магазин фотообоев. Изготовление - один день! Каталог 10 000 изображений!
19 Ноябрь 2009

PHP код в посты и виждеты WordPress

Порой необходимо исполнить  php код прямо в посте или в виджете, решение:

  1. Качаем архивчик
  2. Распаковываем в /wp-content/plugins/
  3. Активируем оба плагина в админке

Вуаля

P.S.

Никак SyntaxHighlighter Plus не могу заставить работать 🙁

[source]код[/source]
[sourcecode language=’php’]код[/sourcecode]
[php]code here[/php]

рубрики: CMS, Новости / Обзоры, Программирование | 29 комментариев

6 Август 2009

Плагин WordPress своими руками

Решил уже добить своё детище Always Last — примочка к WP, добавлящая последний комментарий с заданным содержимым — в моем случае содержимое — это 3 самые обсуждаемые темы на блогах в рунете (это дело конечно же грабится из Яндекс Блогов).

Как это было сделано раньше (тут можно и без критики — делалось на коленке «лишь бы работало»)

wp-comments-post.php

перед последней строчкой wp_redirect($location); уже после обработки добавления обычного комментария, добавил добавление своего

$comment_author       = ‘Always last’;
$comment_author_email = ‘lasted@yandex.ru’;
$comment_author_url   = ‘http://blog.gtalex.ru/’;
//$comment_content = iconv(«WINDOWS-1251», «UTF-8», «Самое обсуждаемое на блогах:\n»);
$comment_content = ‘Самое обсуждаемое на блогах:’;

$cashe = @file(‘top3.cashe’);
list($time, $ids, $themes) = unserialize($cashe[0]);
foreach($themes as $theme) {
//    $comment_content.= iconv(«WINDOWS-1251», «UTF-8″, $theme.»\n»);
$comment_content.= ‘<br/>’.$theme;
}

$commentdata = compact(‘comment_post_ID’, ‘comment_author’, ‘comment_author_email’, ‘comment_author_url’, ‘comment_content’, ‘comment_type’, ‘user_ID’);

$comment_id = wp_my_comment( $commentdata );

wp-includes\comment.php

сюда добавил функцию непосредственно добавляющую комментарий

function wp_my_comment( $commentdata ) {

global $wpdb;

$commentdata[‘comment_post_ID’] = (int) $commentdata[‘comment_post_ID’];
$comment_post_ID = $commentdata[‘comment_post_ID’];
$commentdata[‘user_ID’]         = (int) $commentdata[‘user_ID’];

// если в комментариях уже был комментарий от  ‘Always last’ — удаляем
$id = $wpdb->get_var(«SELECT comment_ID FROM $wpdb->comments WHERE comment_post_ID = ‘$comment_post_ID’ and comment_author = ‘Always last’ LIMIT 1″);

if ($id>1) {
wp_delete_comment($id);
}

sleep(1);

$commentdata[‘comment_author_IP’] = preg_replace( ‘/[^0-9., ]/’, »,$_SERVER[‘REMOTE_ADDR’] );
$commentdata[‘comment_agent’]     = $_SERVER[‘HTTP_USER_AGENT’];

//    $commentdata[‘comment_agent’]     = $id;

$commentdata[‘comment_date’]     = current_time(‘mysql’);
$commentdata[‘comment_date_gmt’] = current_time(‘mysql’, 1);

$comment_ID = wp_insert_comment($commentdata);
return $comment_ID;
}

Вроде всё ничего — работает и ладно, НО, как вы наверное уже обратили внимание на исправляемые файлы — при каждом обновлении движка WP приходится эти блоки вставлять заново — неудобно и не профессионально.

В общем решил я оформить это дело в виде плагина (эх страшно даже).

Во первых я решил убрать прямую работу с базой — вставка комментария, удаление и т.д. Краткость — сестра таланта, да и побыстрее будет работать. 🙂 Просто берем содержимое файла и в момент вывода странички с комментариями, выводим последним.

Плагин получился до безобразия простой и что удивительно — рабочий (с первого раза завелся).

Вот непосредственно код файла AlwaysLast.php

<?php
/*
Plugin Name: Always Last
Plugin URI: http://blog.gtalex.ru
Description: Insert Always Last comment
Version: 1.0.0
Author: GTAlex
Author URI: http://blog.gtalex.ru
*/

/*  Copyright 2009  GTAlex  (email : anubis3d@gmail.com)

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
*/

function GT_AlwaysLast ()
{
$comment_content = ‘Самое обсуждаемое на блогах:’;

$cashe = @file(‘top3.cashe’);
list($time, $ids, $themes) = unserialize($cashe[0]);
foreach($themes as $theme) {
//    $comment_content.= iconv(«WINDOWS-1251», «UTF-8″, $theme.»\n»);
$comment_content.= ‘<br/>’.$theme;
}
echo «<li> <cite> Always Last </cite> said:\n»;
echo «<blockquote>».$comment_content.»</blockquote></li>\n»;
return true;
}
?>

В плагине подрубаем функцию выводящую нужный комментарий. Закидываем получившийся файлик в папку с плагинами (желательно под плагин тоже создать папочку). Из панели управления активируем плагин.

Для того чтоб заработало, ещё необходимо подправить  файлик wp-content\themes\Ваша Тема\comments.php

После строчки

<?php endforeach; /* end for each comment */ ?>

Добавляем вызов нашей функции

<?php if ( function_exists(‘GT_AlwaysLast’) ) GT_AlwaysLast(); ?>

Вуаля — Готово!

Результат работы плагина можно увидеть в любом посте — последний комментарий будет от Always Last.

При написании плагина и сего поста были использованы следующие материалы (если есть желание сваять плагинчик — очень советую всё изучить — изложено наглядно и понятно).

Делаем плагины для WordPress. Часть 1

Делаем плагины для WordPress. Часть 2

Делаем плагины для WordPress. Часть 3

P.S.

При наличии времени нужно будет довести плагинчик до ума — во первых сделать, чтоб не приходилось в ручную править comments.php, а во вторых сделать настройку для плагина, где можно было бы редактировать Юзера, от которого идет комментарий и непосредственно Текст сообщения. Как такое сделать, опять же, подробно расписано в вышеупомянутых статьях.

У меня берется из файла — т.к. именно в него я сохраняю результат парсинга Я.Блоги.

Дальнейшее обсуждение, новые версии и пр. перенесено на форум в одноименную ветку
WordPress своими руками

рубрики: CMS, Новости / Обзоры, Полезности, Программирование, Размышления | 21 комментарий

30 Июль 2009

Свой шаблон за 5 минут — видеоурок

Всем привет!

Насмотрелся видео-уроков Попова — понравилось — для новичков вообще супер находка!

Как говориться лучше один раз увидеть (и услышать), чем сто раз прочитать !

Обзавелся Camtasia Studio и, собственно — что получилось выкладываю на ваш суд.

Урок, уроком назвать сложно — просто беглая демонстрация возможностей программки по созданию своих шаблонов — Artisteer. Я как то упоминал в одном из постов о ней — заметка осталась без внимания, а программка думаю все таки заслуживает особого внимания.

Встраивать прямо в пост видео не стал — имхо лучше скачать файликом  и посмотреть уже офлайн, если будут пожелания — сделаю в пост.

Свой шаблон за 5 минут (видео).

Если видеоурок понравится — будут еще уроки.

Если понравился пост — ретвитим (кнопочка чуть ниже — справа) 🙂

P.S.
Обсуждение программы, новые версии и другую полезную информацию советую посмотреть на форуме в ветке Arteester — редактор шаблонов к WP, Joomla, Drupal

рубрики: CMS, SEO, Новости / Обзоры | 27 комментариев

2 Декабрь 2008

Техничекские работы с блогом WordPress

Вчерашний вечер посвятил непосредственно технической работе с блогом:

  • Сначала конечно же пробекапил БД и файло.
  • Проапдейтил версию до 2.6.5 — в этом мне сильно помогла находка в просторах родного рунета — портал Кактуса (чел. профессионально занимается руссификацией, плагинами да и вообще ВордПрессом). Причем я взял последнюю ПоверПак версию — добавлена куча весьма полезных плагинов. Вроде апгрейд без особых проблем прошел — что не может не радовать (пока не дышу на блог).
  • После апдейта блога пришлось сразу апдейтить устаревшие плагинчики — новый движек любезно мне сообщил об устаревании коих. Так же довольно много времени убил к изучению, «прикручиванию» и настройке этих самых плагинчиков из пакета.Ннекоторые вещи уже можно лицезреть на блоге, некоторые — в админке. Особо хочу отметить следующие плагинчики: Admin Management Xtended (очень удобное расширение админки), WP Ajax Edit Comments (рулим комментами прямо в блоге), WP-PageNavi (постраничная навигация), WP-Polls(опросы), WP-PostRatings (рейтинги) ….. Короче — РЕКОМЕНДУЮ !
  • Ну и при настройке пришлось немного поправить дизайн — стили CSS, в чем мне помог аддон к моему любимому браузеру FF — CSSViewer
  • Конечно же слетело рук моих творенье Always Last т.к. довести до ума всё руки не доходят (знаний и времени тоже пока не хватает) т.е. сделать из «этого» полноценный плагин — если кто желает помочь — приглашаю в соавторство 🙂

В общем нормально так поработал — остался доволен 🙂

рубрики: CMS, Новости / Обзоры | 16 комментариев

15 Июль 2008

Сплог на WordPress : плагины и парсеры авто-блоггинга

Ксерокс        Приветствую премногоуважаемые !

Давненько не постил — да оно и не удивительно — ведь на улице ЛЕТО ! 🙂 Время распределяется на офлайн работу, семью — оставшееся на летний отдых (со следующей неделе вообще вырвусь в отпуск — мысленно уже там).

Тем не менее созрел я таки для поста на тему публикаций дублированного контента. В наш век бурного развития веб 2.0, одной из фич которого являются RSS ленты — скоммуниздить какой либо контент не составляет вообще никаких проблем (вприницпе и раньше не составляло — но тут вообще «рай» — собственно оно для этого и было создано).

Идея «ворованного» контента далеко не нова, тем не менее схема рабочая. Хоть «светить» ресурсы у нас не принято, но имхо во первых так гораздо нагляднее  и понятнее, а во вторых мой блог тоже попал в список доноров.

Итак, мой взгяд для разбора упал на ресурс «Блог Молчуна» (за анализ, в знак благодарности лови  пару прямых ссылок).

Для начала немного статистики (учитываем, что блогу еще и года не исполнилось — первые посты — сентябрь 2007)

  • 2731 страниц в индексе Яндекса
  • индекс цитирования 3/90
  • 2380 страниц в индексе гугла
  • PR 4
  • более 3к обратных ссылок (по Yahoo)  (анализ коих явно говорит о серъезной работе Молчуна по продвижению блога) (так же стоит при постинге выбирать «донора» с работающим trackbacks механизмом и желательно «чистыми» обратными ссылками — без нофоллоу и ноиндекс)
  • 658 подписчиков фидбурнера (оказывается сплоги еще и читают 🙂 вкус автора RSS агрегатора пришелся по вкусу многим)
  • 200-300 ежедневных посетителя
  • от 2-х до 10-ти ежедневных поста (главное стабильность — и снова респект)
  • 3 серъезных рекламных баннера (минимум соточка есть — считай средненький сервачек уже окуплен)

Не правда ли — неплохо для сплога (при таком кол-ве страниц в индексе удивляет отсутствие контекстной рекламы и явных продажных (биржевых) ссылок, хотя может из за отсутствия оного блог до сих пор в индексе)

Не скажу, что это чистый сплог — все же чувствуется «рука» человека —  модерация и отбор статей … Но тем не менее факт плагиата на лицо — подавляющее большинство статей сграбленны с RSS потоков.

Подведем  итоги —  блог как минимум на самоокупаемости, с очень неплохими показателями (для сплога), ежедневных усилий на постинг (думаю инструмент для сего у автора присутствует), какой либо синонимайзинг или рерайтинг практически отсутствует (изредка рерайт названий) — отсюда делаю вывод, что на блог у модератора ежедневно уходит минут 30 — при «правильном» подходе к масштабируемости доходных проектов (видимо с привлечением наемных рабочих — т.к. даже при доходности в 150$ и 10-15 подобных проектов в идеале выходит всего 1500$-2000$) работать с сграбленным контеном очень даже можно !

«Выцепить» для анализа подобные сплоги RSS-агрегаторы не трудно — например берем кусочек сграбленного с мембраны поста — из категории Авто-Мото на Молчуне — Электромобиль. Литиевый Ох.   — я выбрал  фразу «Перед нами одна из немногих в мире попыток создания электромобиля» — с кавычками (обязательно) вбиваем в поисковик — давим найти — как правило поисковики склеивают результаты — поэтому где то снизу должна быть доп.ссылочка — «показать ВСЕ результаты» — вуаля — смотрим, анализируем конкурентов 🙂

На закусочку обещанные кеи по сабжу (плагины для автопостинга в WP). Расписывать, что и как по каждому не буду во первых потому, что сам не достаточно ознакомлен с каждым (возможно и сделаю еще подробный обзор), а во вторых думаю все поисковиками и без меня умеют пользоваться.

WP-o-Matic
WP-IMPORT
Feedmaster
SmartRSS
FeedWordpress

вот еще веточка интересная по теме http://ru-wordpress.org/2007/03/26/note-4.html

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

Ну и конечно же — в любом случае контент поисковики любят уникальный — поэтому синонимайзер + небольшой рерайт в дополнение к парсеру-грабберу явно не помешает !

вот и все, что хотел сказать … буду рад дополнениями и вообще вашим соображениям

P.S.

Бомба от TNX все еще не созрела … молчат пока.

рубрики: CMS, SEO, Новости / Обзоры | 84 комментария

20 Январь 2008

Защита WordPress и о защите CMS в целом

Защита WordPress и о защите публичных CMS в целом

И снова небольшая заметочка по WP в частности и вообще о защите публичных движков.

Заметку решил написать после прочтения серии постов с похожими названиями и рождения небольшой идейки — думаю в сфере развития блогосферы весьма интересной.

Для начала некоторая выжимка информации по защите WP с постов, прочитанных мною:

Обратите повышенно внимание папке wp-admin — если Вы работаете с каких то определенных айпишников — очень советую создать .htaccess, где явно прописать доступ именно с этих айпишников (или подсети в случае работы через провайдера, где IP адрес выделяется динамически с определенного диапазона) — более подробно об этом моменте лучше почитать в заметке 3 простых шага для защиты вашего блога на WordPress.

В случае если предыдущий метод не подходит можно на папочку wp-admin поставть авторизированный доступ средствами .htpasswd — об этом методе хорошо написано в статье Как защитить WordPress-блог
чтобы не мучаться в ручную Вам поможет плагинчик WordPress Plugin — htaccess password protection for wp-admin

От попыток зайти в админку с неправильным реферером спасет плагин Плагин «Anti-XSS attack»

Плагин Login LockDown запишет все неудачные попытки входа в панель управления с подробной информацией о взломщике, и заодно заблокирует попытки брутфорса (кстати по брутфорсу — думаю тут защищаться лучше на уровне файервола, но готовых решений к сожалению подсказать не могу).

Это все, что я хотел сказать по Вордпрессу — перейдем непосредственно к тому, что навеяли все, указанные статейки.

Но для начала немного размышлений:

Блоговедение растет ОЧЕНЬ быстрыми темпами (WP вроде самый распространенный движек) — вообще использование публичных (да и платных) CMS набирает бешенные темпы — и как правило пользуются всем этим делом люди далеко не профессионалы в аспектах защиты своего творения (блога и пр.) — думаю процентов эдак 98-99 🙂 Но каждый ! владелец блога явно не хотел бы распрощаться с ним и стопроцентно будет против каких либо надругательств над своим произведением искусства …

Какая обрисовывается картина — рынок огромен, спрос думаю найдется. Вывод напрашивается сам …

Организовать секюрити сервис, который за скромную плату постоянно проверял бы ресурсы (всяческие разные CMS) на предмет наличия уязвимостей и оповещал владельца ресурса о них плюс информировал о возможных методах залатывания дыр.

Как считаете — выгорит подобное дело ?

P.S.

Добавил в ридер пару блогов: Заработок в Интернете с интересной заметкой о методе вычисления продажных ссылок — метод рабочий на 100% ! и блог SEO-PPC-FAQ c советом как можно защитить WP от вычисления продажных ссылок (в общем то поняв идею как вычисляются покупные ссылки — защитить ресурс дело техники).

Кстати — на заметку отдельный сервис по определению продажных ссылок (мои ресурсы почему то не все выкупил, хотя с помощью метода определяются 100%)

рубрики: CMS, Размышления | 17 комментариев

17 Январь 2008

RSS плагины для WordPress

У Арнольда на блоге нарыл весьма полезный пост о RSS плагинах к WP — советую установить.

Собственно этот пост создан в основном для теста этих плагинчиков 🙂 особо репостингом не люблю заниматься

На случай если вдруг у Арнольда будут проблемы — решил выложить плагинчики и у себя:

AddtoRSS

Feed Footer

RSS Signature

Админку у последнего можно найти в Плагинах, у других в Настройках.

рубрики: CMS | 24 комментария

10 Январь 2008

Переносим блог WordPress на новый сервер

Апгрейд

Итак вроде все перенесено — жду обновления записей DNS !

Кстати — немного жалко денег за предустановку старого сервака, да и вообще как то хочется отплатить серваку добром 🙂 — все же первые деньги и бесценный опыт я заработал именно на нем — вот и ищу дня него хорошего хозяина 🙂 — под мои теперешние задачи хватает и одного (только под бэкап держать сервер — жирновато будет), поэтому кому если нужно в нижеприведенной конфигурации — стучитесь — обсудим.

Конфигурация «старого» сервера:  (все удовольствие 49 Евро в месяц)

Opteron 146 2000 mHz   /  memory 1Gb   /  HDD 160 Gb /  Траф безлимитный

Датацентр в Германии — keyweb  на данный момент аптайм 103 дня — и то последний раз ребутил лично сам. Никаких панелей не установлено — считаю подобные вещи лишней тратой денег 🙂 амп (апаче мускул пхп) ставил сам.

В данное время пишу пост пока ещё на «старом» сервере — заодно и увижу как днс обновится 🙂

Вкратце процесс переноса:

* Бэкап БД MySQL дампером

мне лично нравится эта софтина, вообще конечно по методам создания дампа — разбег велик

* Бэкап файлов

я в терминальной сессии Putty затарил всю папку

* Все кидаем на новый сервер, создаем БД — разворачиваем дамп, копируем файло

* P.S. домен естественно должен быть отложен

(как настроить DNS и Apache думаю обьяснять не стоит)

Для проверки правильности переноса (записи днс ещё не обновились, а работоспособность  хотелось бы проверить уже сейчас) — побыстрому накидал скриптик, который и дёрнул с браузера

<?php

$ip   = «xxx.xxx.xxx.xxx»; // сюда прописываем айпишник нового сервака

$host = «blog.gtalex.ru»;  // запрашиваемый хост

$sockets = fsockopen($ip, 80);

fputs($sockets, «GET / HTTP/1.1\r\nHost: $host\r\n\r\n»);

while (!feof($sockets)) {

echo fgets($sockets, 128);

}

fclose($sockets);

?>

можно конечно ещё заголовки чикнуть для красоты — но я посчитал излишеством — свою цель я достиг — морду блога со всеми записями, баннерами и прочим оформлением я увидел

рубрики: CMS, Программирование | 15 комментариев