Każdy temat założony w ewidentnie złym dziale będzie usuwany! Proszę czytać opisy działów i regulamin!
![]() ![]() |
14.2.2008 - 10:48
Post
#1
|
|
|
aktywność: ![]() Grupa: Bloger Postów: 10 Nr: 3 043 |
Witam.
Mam problem - potrzebuje importowac do Wordpress duze ilosci wpisow (informacje o przyszlych imprezach) z timestampem w przyszlosci, tj zaznaczonych do automatycznej publikacji w danym dniu. Niestety od kilku dni zabieram sie na to z roznych stron i caly czas bezskutecznie. Najpierw probowalem preparowac pliki .sql. Kod wygladal mniej wiecej tak: KOD for (...) { fwrite($f,"INSERT INTO wp_posts (ID,post_author,post_date,post_date_gmt,post_content,post_title,post_category post_status,comment_status,ping_status,post_name,post_modified,post_modified_gmt guid,post_type) VALUES (".$i.",1,'".$date."','".$date."','".$tekst."','".$title."',0,'future','closed','closed','".$title."','".$date."','".$date."','http://www.xxx.pl/?p=".$i."','post');\n"); $md5 = md5(serialize(array($i))); $cron = $cron.'i:'.strtotime($date.'GMT').';a:1:{s:19:"publish_future_post";a:1:{s:32:"'.$md5.'";a:2:{s:8:"schedule";b:0;s:4:"args";a:1:{i:0;i:'.$i.';}}}}'; } $cron = $cron.'}'; fwrite($f, 'UPDATE wp_options SET option_value = \''.$cron.'\' WHERE option_id = \'102\';'); Posty owszem importowalo z przyszlym timestampem, jednak prawdopodobnie zle preparowalem rekord "cron" w wp_options, poniewaz wtedy kiedy post powinnien sie ukazac nic sie nie dzialo i trzeba bylo go recznie otworzyc do edycji i zapisac zeby sie ukazal. Niestety skladnia tej opcji "cron" w wp_options nie jest udokumentowana, albo przynajmniej ja nie znalazlem jej dokumentacji wiec nie wiem gdzie popelnilem blad:( Nastepnie probowalem spreparowac plik XML (XRS) Wordpressa, takim kodem: KOD fwrite($f,'<?xml version="1.0" encoding="UTF-8" ?>\n<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wp="http://wordpress.org/export/1.0/">\n<channel>'); for (...) { fwrite($f,'<item>\n<title>'.$title.'</title>\n<link>http://www.xxx.pl/?p='.$i.'</link>\n<pubDate>'.$date.'</pubDate>\n<dc:creator>admin</dc:creator>\n<guid isPermaLink="false" />\n<description/>\n<content:encoded>\n<![CDATA['.$tekst.']]>\n</content:encoded>\n<wp:post_id>'.$i.'</wp:post_id>\n<wp:post_date>'.$date.'</wp:post_date>\n<wp:post_date_gmt>'.$date.'</wp:post_date_gmt>\n<wp:comment_status>open</wp:comment_status>\n<wp:ping_status>open</wp:ping_status><wp:post_name>'.$title.'</wp:post_name>\n<wp:status>future</wp:status>\n<wp:post_parent>0</wp:post_parent>\n<wp:menu_order>0</wp:menu_order>\n<wp:post_type>post</wp:post_type>\n</item>\n'); } fwrite($f, '</channel>\n</rss>'); niestety mimo tego ze plik wynikowy wyglada poprawnie, baa, WP nawet widzi ze sa w nim posty bo upomina sie przy imporcie jakiemu uzytkownikowi je przypisac, to finalnie jednak żadne posty się nie pojawiają ani w WP ani nawet w bazie danych. Co więcej, niestety ten kod nawet jak zadziała może nie spełniać warunków ponieważ nigdzie w import.php nie zauwazylem instrukcji warunkowej wrzucajacej post do "cron" w wp_options gdy timestamp jest w przyszlosci (taka instrukcja jest w post.php na przyklad). Jeśli ma ktoś pomysł co zrobić aby powyższe sposoby zadziałały albo potrafi wyjaśnić co dokladnie powinno byc w opcji "cron" w "wp_options", albo zna jakis inny sposob na zaimportowanie do odpowiednich kategorii/z odpowiednimi tagami postow ktore maja ukazac sie w przyszlosci, bede naprawde bardzo wdzięczny. |
|
|
|
![]() ![]() |
| Wersja Lo-Fi | Aktualny czas: 19 11 08 - 15:16 |