Export a post tới json: hôm nay tôi cần export một page ux builder của flatsome để phục vụ cho việc import đến các site khac, bạn biết rồi đó flatsome thì toàn là shortcode nên việc export của chúng ta cũng cần lấy các url image trong shortcode nưa nên phải xử lý hơn nhiều sau đây là cách làm
1 2 3 4 5 6 7 8 9 10 11 12 |
function page_row_actions( $actions, $page_object ) { // Do not show UX Builder link on Shop page. if ( function_exists( 'is_woocommerce' ) && $page_object->ID == wc_get_page_id( 'shop' ) ) { return $actions; } $link = admin_url('edit.php?post_type='.$page_object->post_type.'&post_id='.$page_object->ID.'&export-ux-page=1'); $link = wp_nonce_url( $link, -1, 'export-ux-page-nonce' ); $actions["export-ux-page"] = '<a href="'.$link.'">Export UX Page</a>'; return $actions; } add_filter( 'page_row_actions',array( $this, 'page_row_actions'), 10, 2 ); |
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 |
function export_ux_page(){ //https://vinhnguyen.abc.dev/wp-admin/edit.php?post_type=page&post_id=8&export-ux-page=1&export-ux-page-nonce=532a2e98e3 if ( isset( $_GET['export-ux-page-nonce'] ) && !wp_verify_nonce($_GET['export-ux-page-nonce'], 'export-ux-page-nonce') && isset( $_GET['export-ux-page'] ) && isset($_GET['post_id']) ) { if($_GET['post_id'] > 0){ $page_object = get_post($_GET['post_id']); $export_data = array(); $export_data['content'] = $page_object->post_content; $all_images = array(); //Find images is background preg_match_all('/bg\=(.*)/i', $page_object->post_content,$images); if($images[1]){ foreach($images[1] as $image){ $t = explode('"',$image); //var_dump($t); $image_id = $t[1]; $src_thumbnail =wp_get_attachment_image_src($image_id , 'full'); $all_images[$image_id] = $src_thumbnail[0]; } } //Find [img=" preg_match_all('/\img\=(.*)/i', $page_object->post_content,$images); if($images[1]){ foreach($images[1] as $image){ $t = explode('"',$image); //var_dump($t); $image_id = $t[1]; $src_thumbnail =wp_get_attachment_image_src($image_id , 'full'); $all_images[$image_id] = $src_thumbnail[0]; } } $export_data['images'] = $all_images; nocache_headers(); header( 'Content-Type: application/json; charset=utf-8' ); header( 'Content-Disposition: attachment; filename='.$page_object->post_name.'-' . gmdate( 'm-d-Y' ) . '.json' ); header( 'Expires: 0' ); echo wp_json_encode($export_data); exit; } } } add_action( 'admin_init', array( $this, 'export_ux_page' ) ); |
Mọi sự sao chép xin ghi rõ nguồn là fcwordpress.net
Chuyên trang về wordpress: hướng dẫn thiết kế theme, plugin, thủ thuật wordpress