View Single Post
Staro 14.12.2016., 09:25   #7
sinisa1989
Bazinga
Moj komp
 
sinisa1989's Avatar
 
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.
sinisa1989 je offline   Reply With Quote