Кросспостинг из Wordpress в SMF 2.0 RCх
Дата: 26 мая, 2011 год
Есть у одного моего знакомого блог на WordPress. Недавно он попросил меня поставить еще и форум – на это были свои причины. Я, как истинный приверженец SMF, посоветовал ему этот движок, и сам же его ему и поставил :) А дальше знакомый захотел, чтоб его посты из WP автоматом дублировались на форуме SMF…
Ну, подумал я, раз хочет, значит сделаем, чего уж там. Тем более, что у меня уже есть готовый скрипт постинга в SMF, осталось только написать небольшой скрипт выдирания постов из WP.
Но, оказалось все намного проще! Случайно я наткнулся на плагин для WP, который позволяет делать тоже самое, что я хотел написать самостоятельно, а именно – автоматически добавлять новую тему с содержанием поста в SMF при его публикации в WordPress. Плагин называется WPSMF, последнее обновление правда было почти год назад, тем не менее, он работает с последними версияами SMF 2.0 RC5 и WP 3.1.2 (в момент написания поста уже была доступна версия 3.1.3, так что 100% гарантии, что плагин работает с самой последней версией WP у меня уже нет).
Плагин много чего позволяет делать, в том числе и экспортировать посты из WP в SMF, обновлять пост в SMF при его обновлении в WP, и даже синхронизировать комментарии! Последнее нам было не нужно, но фича сама по себе интересная. Вообщем, надо создать спец-рубрику в WP, из которой все посты будут кросспостинговаться (гыг :)) в SMF в определенный подфорум.
Ограничение одно, но оно существенное и вполне логичное – форум и блог должны находиться в одном пространстве доступа. То есть, чтобы можно было указать путь относительно обеих CMS-систем, он задается в настройках плагина.
Все было замечательно с этим плагином, кроме одного – хотелось настраивать результат вывода в топике SMF, а именно – возможность делать кросспост только анонсов (до тэга “more”), а также оставлять ссылку на полную версию поста, расположенного на WP. Таких фич не было, и мне пришлось поковырять код плагина.
В файле /wp-content/plugins/wpsmf/posts.php в самом начале идет обработка тела поста перед его публикацией в SMF. Находим такую строчку:
$body = '[html]'.$body.'[/html]';
Я взял ее для удобства, в ней идет обрамление текста поста ВВ-кодом html. Перед этой строчкой вы можете делать все что угодно с текстом поста. В моем случае я вырезал все, что идет после “more” и добавил ссылку на полную версию в блоге:
$body = explode("<!-more->", $body);
$body = $body[0].'<br><br><br><a href="http://blog.ru/'.$queried_post -> post_name.'/" target="_blank">читать полную версию поста на блоге Иванова</a>';
$body = '[html]'.$body.'[/html]';
Довольно странно, почему этих фич небыло в плагине по умолчанию – довольно полезно ведь.
Еще по теме: WordPress, кросспостинг
Категория: Хаки и доработки
спасибо за статью
а как можно сделать тоже самое только smf на одном сервере а wp на другом?
С помощью данного плагина – нет. Ну а в принципе – да, сделать можно, но это надо самому писать скрипты.
Как с вами связаться?
Необходима ваша помощь по интеграции.
leksus@leksus.info
Отписал, спс