Автоматическое наполнение WordPress контентом
Как и обещал, выкладываю скрипт для создания контента под блог на wordpress (о том, как наполнять блоги на wordpress контентом я уже писал в заметке Автоматическое добавление контента в WordPress-блоги).
Выкладываю опять же «как есть» — работоспособность присутствует, а осталное не гарантируется :)
Кстати, именно на основе этого скрипта и родилась бесплатная программа для создания импортируемого в WordPress XML-файла — WordPress XML Creator.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | #!/usr/bin/perl -w # (c) dimio # http://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"; } |



Если бы Вы сделали это всё плагином для wp, то цены бы Вам не было!!!
Да ну, зачем. И так свои функции выполняет.
Может и выполняет, но вставить в свой блог этот код я не знаю куда.. блог на wordpress
Это совершенно отдельный скрипт, в блог его вставлять не нужно. Запускается он так же, как и любой другой перл-скрипт.
Спасибо! Теперь все понял.
А на php тоже самое сделать может кто — нибудь?
Отличная статья.Спасибо за полезную информацию. Ваши результаты впечатляют! Сильно мотивирует, есть к чему стремиться и на кого равняться. Удачи!