چگونه از نوشته های وردپرس خروجی CSV تهیه کنیم؟

گاهی اوقات نیاز دارید از لیست نوشته های منتشر شده وب سایت تان یک فایل CSV تهیه کرده و در کانال تلگرام، شبکه های اجتماعی و یا برای دوستانتان ارسال نمائید، اما وردپرس به صورت پیش فرض امکان تهیه خروجی فوق را در اختیارتان قرار نمی دهد و باید از افزونه هایی همچون Export All URLs یا Export Post Info استفاده کنید، ما در این پست آموزشی می خواهیم این قابلیت را بدون نصب افزونه و در دو گام پیاده سازی کنیم، پس با ما همراه باشید.

گام اول: افزودن دکمه خروجی CSV

در این روش یک دکمه با نام اختیاری “خروجی CSV” به لیست نوشته های وردپرس اضافه می کنیم، این دکمه فقط برای کاربران با نقش مدیریتی قابل مشاهده خواهد بود، پس کدهای زیر را در فایل functions.php قرار دهید.

function add_export_publish_posts_button()
{
    if ( current_user_can( 'manage_options' ) ) {
        
        $screen = get_current_screen();
        if ( isset( $screen->parent_file )
                && ( 'edit.php' == $screen->parent_file ) ) {
            ?>
            <input class="button button-primary"
                   type="submit"
                   id="export_posts"
                   name="export_posts"
                   value="خروجی CSV">
            <script type="text/javascript">
                jQuery( function ($) {
                    $( '#export_posts' ).insertAfter( '#post-query-submit' );
                });
            </script>
            <?php
        }
        
    }
}
add_action( 'restrict_manage_posts', 'add_export_publish_posts_button' );

 

خروجی کدهای بالا بدین صورت خواهد بود.

تهیه خروجی csv در وردپرس

 

گام دوم: کد تولید خروجی

دکمه خروجی CSV به تنهایی هیچ کاری انجام نمی دهد و باید کدهای زیر را هم به فایل functions اضافه نمائید.

function do_export_posts()
{
    if ( current_user_can( 'manage_options' ) && isset( $_GET['export_posts'] ) ) {
        $arg = array(
            'post_type' => 'post',
            'post_status' => 'publish',
            'posts_per_page' => -1,
        );

        $post_list = get_posts( $arg );
        if ( $post_list ) {
            header( 'Content-Encoding: UTF-8' );
            header( 'Content-type: text/csv; charset=utf-8' );
            header( 'Content-Disposition: attachment; filename="wp.csv"' );
            header( 'Pragma: no-cache' );
            header( 'Expires: 0' );
            $file = fopen( 'php://output', 'w' );
            fputs( $file, "\xEF\xBB\xBF" ); // UTF-8

            global $post;
            foreach ( $post_list as $post ) {
                setup_postdata( $post );
                fputcsv( $file, array( get_the_title(), get_the_author(), get_the_permalink() ) );
            }
            exit();
        }
    }
}
add_action( 'init', 'do_export_posts' );

 

حالا با کلیک بر روی گزینه “خروجی CSV” فایلی مشابه تصویر زیر تولید خواهد شد که می توانید آنرا با نرم افزارهای ویرایشگر و یا Excel مشاهده کنید.

خروجی csv در اکسل

کار تمام است، امیدواریم این مطلب آموزشی برای شما مفید بوده باشد.

نظرات و سوالات کاربران

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *