Skip to content
Read For Learn
Read For Learn
  • Database
    • Oracle
    • SQL
  • C
  • C++
  • Java
  • Java Script
  • jQuery
  • PHP
Read For Learn
  • Database
    • Oracle
    • SQL
  • C
  • C++
  • Java
  • Java Script
  • jQuery
  • PHP

Copy content stored in meta to post content

Here’s an example of how to get the meta and set it as the post content. You would need to add all the meta keys to the $meta_fields array.

Obviously test this locally before running in production because it will overwrite whatever is currently in the post content.

function migrate_post_data() {   
    // Add all the meta keys you want to migrate to this array.
    $meta_fields = array(
        'flexible_content_1_content',
        'flexible_content_2_content'
    );

    // Get all the posts.
    $args = array(
        'post_type'      => 'post', // You may need to change this.
        'posts_per_page' => 400,
    );
    $posts = get_posts( $args );

    // Loop over each post.
    foreach ( $posts as $post )  {
        $meta_field_content = array();

        // Loop over each meta field and get their content, adding it to an array.
        foreach( $meta_fields as $meta_field ) {
            $content = get_post_meta( $post->ID, $meta_field, true );

            if ( ! empty( trim( $content ) ) ) {
                $meta_field_content[] = $content;
            }
        }

        if ( empty( $meta_field_content ) ) {
            continue;
        }

        // Set the the post content as whatever the meta fields were.
        $post_args = array(
            'ID' => $post->ID,
            'post_content' => implode( ' ', $meta_field_content ),
        );

        wp_update_post( $post_args );
    }
}

Related Posts:

  1. How to edit a post meta data in a Gutenberg Block?
  2. Sanitizing integer input for update_post_meta
  3. Should I sanitize custom post meta if it is going to be escaped later?
  4. How do I access post meta data when publishing a new post in Gutenberg?
  5. Correct processing of `$_POST`, following WordPress Coding Standards
  6. How to sanitize post meta field value?
  7. How to store Gutenberg ColourPicker RGBA as metadata
  8. How to hide meta block(s) in certain post format
  9. Gutenberg: How to display meta field data in the block frontend (save function)
  10. Can A Post Meta Field Store multiple values that are not in an array?
  11. esc_attr on get_post_meta [closed]
  12. “Cannot use import statement outside a module” JS error while adding a custom meta block?
  13. Gutenberg featured image checkbox – checkbox not correctly set on editing page reload
  14. How do I manage custom meta in post revisions in the Block Editor era?
  15. Data not displaying in text field
  16. Proper Way to Sanitize Meta Input
  17. Extend file format support for post thumbnails
  18. Cannot read properties of undefined (reading ‘useEntityProp’)
  19. How do I retrieve the slug of the current page?
  20. Most efficient way to get posts with postmeta
  21. Get posts by meta value
  22. Explanation of update_post_(meta/term)_cache
  23. How to extract data from a post meta serialized array?
  24. Check what Gutenberg blocks are in post_content
  25. How to save an array with one metakey in postmeta?
  26. WordPress is stripping escape backslashes from JSON strings in post_meta
  27. How can I get the post ID from a WP_Query loop?
  28. Check if Post Title exists, Insert post if doesn’t, Add Incremental # to Meta if does
  29. How to update_post_meta value as array
  30. Adding meta tag without plugin
  31. What’s the point of get_post_meta’s $single param?
  32. What is the different between an attachment in wp_posts and an attachment in wp_postmeta?
  33. post formats – how to switch meta boxes when changing format?
  34. Execute action after post is saved with all related post_meta records (data)
  35. Lack of composite indexes for meta tables
  36. Get a single post by a unique meta value
  37. if get_post_meta is empty do something
  38. How we get_post_meta without post id
  39. How get post id from meta value
  40. What is the code to get the download link for a product in WooCommerce?
  41. Safe to delete blank postmeta?
  42. advanced custom fields update_field for field type: Taxonomy
  43. update_post_meta not saving when value is zero
  44. Content hooks vs User hooks
  45. Meta compare with date (stored as string) not working
  46. How to sanitize select box values in post meta?
  47. Trying to get custom post meta through Jetpack JSON API [closed]
  48. How to update/insert custom field(post meta) data with wordpress REST API?
  49. Restrict post edit/delete based on user ID and custom field
  50. Gutenberg how to make attribute to save to meta
  51. get_post_meta returning empty string when data shows in the database
  52. publish_post action hook doesn’t give post_meta_data
  53. Remove WordPress.org Meta link
  54. Remove post meta keys
  55. How to access the post meta of a post that has just been published?
  56. Why time functions show invalid time zone when using ‘c’ time format?
  57. Why is get_post_meta returning an array when I specify it as single?
  58. How to update/delete array in post meta value?
  59. How to get all term meta for a taxonomy – getting term_meta for taxonomy
  60. Adding an assisting editor box to Post page
  61. delete unused postmeta
  62. Add post meta based on another post meta value before publish post
  63. Is there an equivalent of the PHP function sanitize_key in Gutenberg?
  64. How do I retrieve multi-dimensional arrays from the wp_postmeta table, & display on a website?
  65. Front-end update_post_meta snippet displays white screen?
  66. Query between two meta values?
  67. Save both current and new version of post meta
  68. Get Advanced Custom Fields values before saving [closed]
  69. Give extra post-meta to RSS feeds
  70. How to get meta value in wp_attachment_metadata
  71. WP REST API “rest_no_route” when trying to update meta
  72. Clean up output added via wp_head()
  73. List posts under meta_value heading
  74. Why am I getting an infinite loop with have_posts?
  75. get_post_meta – get a single value
  76. delete value 0 in post meta [closed]
  77. Can I safely delete a record, manually, in the wp postmeta table?
  78. How to store post meta in an array?
  79. What action hook updates post meta?
  80. Can’t translate the post meta data (Date) in another language
  81. get_post_meta / update_post_meta array
  82. adding a URL to a post meta
  83. Exclude a category from the filed under list
  84. Short of raw SQL, can I query for multiple attachment metadata that have a given array key?
  85. update_post_meta() not working when used with WordPress action
  86. Using Advanced Custom Field (ACF) to insert meta description on each page
  87. Triple meta_key on custom SELECT query
  88. get_post_custom()
  89. Adding meta data to an attachment post
  90. update_post_meta not adding anything.(Nor add_post_meta)
  91. loop through all meta keys with get_post_meta
  92. Get posts by meta value with date
  93. How to add meta tag to wordpress posts filter?
  94. Sanitizing `wp_editor();` Values for Database, Edit, and Display
  95. Are multiple values from get_post_meta guaranteed to be ordered?
  96. Identifying Importer Posts
  97. Get updated post meta on save_post action?
  98. Get post from meta_key and meta_value
  99. Add a post metadata if only the key and value does not exist
  100. get_post_meta returns bool(false)
Categories post-meta Tags block-editor, post-content, post-meta, sanitization
How do I translate month names in post metadata?
Reuse a custom WordPress menu on another WordPress website

Recommended Hostings

Cloudways: Realize Your Website's Potential With Flexible & Affordable Hosting. 24/7/365 Support, Managed Security, Automated Backups, and 24/7 Real-time Monitoring.

FastComet: Fast SSD Hosting, Free Migration, Hack-Free Security, 24/7 Super Fast Support, 45 Day Money Back Guarantee.

Recent Added Topics

  • Bug in translation system: load_theme_textdomain() returns true, files are available and accessible but the language defaults to english
  • Custom Elementor controls not appearing in the widget Advanced tab using injection hooks
  • Get the name of the template/*html file used
  • Trying to Add Paging to Single Post Page
  • Sharing media files between live and staging servers
  • How to display the description of a custom post type in the dashboard?
  • Critical error on image display
  • Copying WP data and files into new install?
  • How to determine the DirectAdmin WordPress backup date?
  • How to get list of ALL tables in the database?
© 2026 Read For Learn
  • Database
    • Oracle
    • SQL
  • algorithm
  • asp.net
  • assembly
  • binary
  • c#
  • Git
  • hex
  • HTML
  • iOS
  • language angnostic
  • math
  • matlab
  • Tips & Trick
  • Tools
  • windows
  • C
  • C++
  • Java
  • javascript
  • Python
  • R
  • Java Script
  • jQuery
  • PHP
  • WordPress