date( 'r' ), 'version' => '000', ); } function tags() { $all_tags = get_tags(); if ( ! empty( $all_tags ) ) { foreach ( $all_tags as $tag ) { $garray['data']['tags'][] = array( 'id' => intval( $tag->term_id ), 'name' => $tag->name, 'slug' => $tag->slug, 'description' => $tag->description, ); } } // cleanup unset( $all_tags ); unset( $tag ); } // TODO modifier ça pour Known ! // https://github.com/idno/Known/blob/master/Idno/Common/Entity.php function posts($garray) { $posts = Idno\Common\Entity::getFromAll([], [], 99999); $slug_number = 0; $_post_tags = []; foreach($posts as $post) { if ($post instanceof Idno\Entities\Notification) { continue; } $post_markdown = new HTML_To_Markdown( $post->attributes['body'] ); $_post_tags[] = []; $garray['data']['posts'][] = array( //'id' => intval( $post->ID ), 'title' => substr( ( empty( $post->attributes['title'] ) ) ? $post->attributes['body'] : $post->attributes['title'], 0, 150 ), 'slug' => $post->attributes['slug'], 'markdown' => $post_markdown->output(), 'html' => $post->attributes['body'], 'image' => null, 'featured' => 0, 'page' => 1, 'status' => substr( $post->attributes['publish_status'], 0, 150 ), 'language' => 'fr_FR', 'meta_title' => null, 'meta_description' => null, 'author_id' => 1, 'created_at' => _get_json_date( $post->post_date ), 'created_by' => 1, 'updated_at' => _get_json_date( $post->post_modified ), 'updated_by' => 1, 'published_at' => _get_json_date( $post->post_date ), 'published_by' => 1, ); $slug_number += 1; } $garray['data']['posts_tags'] = $_post_tags; // cleanup unset( $posts_args ); unset( $posts ); unset( $slug_number ); unset( $_post_tags ); unset( $tags ); unset( $tag ); unset( $s ); var_dump($garray); exit; } function _get_json_date( $date ) { return date( 'r', strtotime( $date ) ); } function populate_data($garray) { // if ( $garray !== null ) { // return; // } // attaches metadata metas($garray); // attaches tags // tags(); // populates posts posts($garray); } /** * Sends necessary headers and whatnot to allow to download file * @return bin file */ function download_file($garray) { // Ensure the user accessing the function actually has permission to do this if ( ! current_user_can('export') ) { wp_die( "

You are not allowed to do that.

", 'Permission error' ); } populate_data($garray); $upload_dir = wp_upload_dir(); $filedir = $upload_dir['path']; $filename = 'wp2ghost_export_' . time() . '.json'; if ( ! is_writable( $filedir ) ) { wp_die( "

Uploads directory is not writable, can't save the Ghost json file :/

Generated by the Ghost plugin version {$this->version}.

", 'Directory not writable' ); } $handle = fopen( $filedir . '/' . $filename, 'w' ); $content = $this->get_json( $garray ); fwrite( $handle, $content ); fclose( $handle ); header( 'Content-Description: File Transfer' ); header( 'Content-Type: application/octet-stream' ); header( 'Content-Disposition: attachment; filename='.$filename ); header( 'Content-Transfer-Encoding: binary' ); header( 'Expires: 0' ); header( 'Cache-Control: must-revalidate' ); header( 'Pragma: public' ); header( 'Content-Length: ' . filesize( $filedir . '/' . $filename ) ); flush(); readfile( $filedir . '/' . $filename ); exit; } populate_data($garray); /* //highlight_string("");