Bazinga
Datum registracije: Nov 2007
Lokacija: Križevci
Postovi: 3,926
|
add_action('init', 'export_posts_to_xml'); function export_posts_to_xml() { $args = array( 'posts_per_page' => -1, 'offset' => 0, 'category' => '', 'category_name' => '', 'orderby' => 'date', 'order' => 'DESC', 'include' => '', 'exclude' => '', 'meta_key' => '', 'meta_value' => '', 'post_type' => 'post', 'post_mime_type' => '', 'post_parent' => '', 'author' => '', 'author_name' => '', 'post_status' => 'publish', 'suppress_filters' => TRUE ); $posts = get_posts($args); $file = fopen('posts.xml','w'); $xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><employees></employees>'); foreach($posts as $post) { setup_postdata($post); $image = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID)); $xml->addChild('post_id', $post->ID); $xml->addChild('post_title', $post->post_title); $xml->addChild('post_content', $post->post_content); $xml->addChild('post_image', $image[0]); } wp_reset_postdata(); file_put_contents($_SERVER['DOCUMENT_ROOT'].'/posts.xml',$xml->saveXML()); }
-->
1. get_posts(), get_post_meta(), get_the_category()
2. XML
3. Cron
Cron ti nije neophodan. XML možeš generirati i kad spremaš post. save_post()
To sve možeš napraviti u functions.php od teme koju koristiš. A možeš napraviti i plugin.
EDIT:
Mali primjer. Ubaci to u functions.php teme koju koristiš.
Btw. "init" akcija nije baš najpametnije rješenje jer se xml generira kod svakog učitavanja stranice. Ako imaš puno postova, vjerojatno će skripta "puknuti" prije nego što odradi sve što treba. U tom slučaju stavi 'posts_per_page' => 10. -1 je u principu "SELECT *"
PHP kod:
add_action('init', 'export_posts_to_xml'); function export_posts_to_xml() { $args = array( 'posts_per_page' => -1, 'offset' => 0, 'category' => '', 'category_name' => '', 'orderby' => 'date', 'order' => 'DESC', 'include' => '', 'exclude' => '', 'meta_key' => '', 'meta_value' => '', 'post_type' => 'post', 'post_mime_type' => '', 'post_parent' => '', 'author' => '', 'author_name' => '', 'post_status' => 'publish', 'suppress_filters' => TRUE ); $posts = get_posts($args); $file = fopen('posts.xml','w'); $xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><employees></employees>'); foreach($posts as $post) { setup_postdata($post); $image = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID)); $xml->addChild('post_id', $post->ID); $xml->addChild('post_title', $post->post_title); $xml->addChild('post_content', $post->post_content); $xml->addChild('post_image', $image[0]); } wp_reset_postdata(); file_put_contents($_SERVER['DOCUMENT_ROOT'].'/posts.xml',$xml->saveXML()); }
__________________
The best place to hide a dead body
is page 2 of Google search results.
Zadnje izmijenjeno od: sinisa1989. 19.12.2016. u 21:37.
|