Автоматичне наповнення WordPress контентом
Як і обіцяв, викладаю скрипт для створення контенту під блог на wordpress (про те, як наповнювати блоги на wordpress контентом я вже писав у замітці Автоматичне додавання контенту в WordPress-блоги ).
Викладаю знову ж таки "як є" - працездатність присутній, а осталное не гарантується ![]()
До речі, саме на основі цього скрипта і народилася безкоштовна програма для створення імпортованого в WordPress XML-файла - WordPress XML Creator .
#! / Usr / bin / perl-w # (c) dimio # http://www.dimio.org use strict; use DBI; # die "НЕ ЗАБУДЬ конвертацію ВХІДНИЙ ФАЙЛ В Юнікод! NE ZABUD SKONVERTIROVAT VHODNOY FILE V UTF! "; my $ game_descr_file = 'game_descr.txt'; my $ db_type = 'SQLite'; my $ db_name = '.. / sqlite_db / gb_blogs.sqlite'; my $ db_login =''; my $ db_password =''; my $ dbh = db_connect ($ db_type, $ db_name, $ db_login, $ db_password); database_filling ($ game_descr_file, $ dbh); $ dbh-> disconnect; exit 0; sub database_filling {# парсинг вихідного файлі з описами ігор, заголовками і тегами для них. # Кожен запис розбирається на складові і оновлюється відповідна таблиця в БД. my ($ infile, $ dbh) = @ _; my ($ GameID, $ PostHeader, $ PostBody, $ PostTags, $ file, $ BlogID); open (IN_FILE, '<', $ infile) or die "Can't open file $ infile: ". $!, "\ N"; {local $ / = "\ n \ n"; # локально усередині блоку з {} змінити ознаки кінця вхідного рядка, тому окремі тексти у файлі розділені порожнім рядком. while (<IN_FILE>) {+ + $ BlogID; chomp; s / ^ \ s + / /; s / \ s +$//; if (m! <game_id> (\ d +) </ game_id> \ n <header> (.+)</ header> \ n <body> (.+)</ body> \ n <tags> (.+)</ tags>! xsi) {($ GameID, $ PostHeader, $ PostBody, $ PostTags ) = ($ 1, $ 2, $ 3, $ 4); # print "GID: $ GameID \ nBLOG: $ BlogID \ nHEAD: $ PostHeader \ nBODY: $ PostBody \ nTAGS: $ PostTags \ n"; put_to_db ($ dbh, $ GameID , $ PostHeader, $ PostBody, $ PostTags, $ BlogID); # кладемо отримані дані в базу} else {die "Check input file format! (end of line (must be \ \ n - unix) or encoding (must be UTF- 8) \ n ";}}} close (IN_FILE);} sub db_connect {my ($ db_type, $ db_name, $ db_login, $ db_password) = @ _; my $ dbh = DBI-> connect (" DBI: $ db_type : $ db_name "," $ db_login "," $ db_password ", # {Unicode => 1}) or die" Connecting: $ DBI:: errstr \ n "; # підключаємося до бази SQL (відкривається дескриптор БД) $ dbh- > {unicode} = 1 if $ db_type eq 'SQLite'; return $ dbh} sub put_to_db {my ($ dbh, $ GameID, $ PostHeader, $ PostBody, $ PostTags, $ BlogID) = @ _; # my $ db_data = $ dbh-> do ("INSERT INTO BlogsMainData (BlogID) VALUES $ BlogID;"); my $ query = "UPDATE BlogsContent SET PostHeader = '$ PostHeader', PostBody = '$ PostBody', PostTags = '$ PostTags' WHERE GameID = $ GameID AND BlogID = $ BlogID AND PostHeader IS NULL; "; my $ db_data = $ dbh-> do ($ query); $ query> 0? print" $ GameID added \ n ": print" $ GameID not added \ n ";}
Ще на схожі теми:
Рубрики: seo , Блогінг , Гаджети , Кодинг |
Мітки: perl , wordpress , блог , програмінг , сателіт |
5 коментарів 

Якщо б Ви зробили це все плагіном для wp, то ціни б Вам не було!
Та ну, навіщо. І так свої функції виконує.
Може і виконує, але вкласти в свій блог цей код я не знаю куди .. блог на wordpress
Це зовсім окремий скрипт, в блог його вставляти не потрібно. Запускається він так само, як і будь-який інший перл-скрипт.
Спасибі! Тепер все зрозумів.