I planning now simple plugin, i search for idea to adding subposts (child) for post in wordpress on post creation page.
I want to add form with two fields, title and content, and save it with parent ID of current parent post.
Simple mockup:
For create subpost i can use this:
$post = array(
'post_title' => wp_strip_all_tags( $_POST['post_title'] ),
'post_content' => $_POST['post_content'],
'post_status' => 'publish',
'post_parent' => id of post
);
wp_insert_post($post);
But i want do this dynamic with ajax, but on create page i dont have parent post ID. Someone have ideas for this?
Actually, you do have a post ID, it just isn't in the database or in the query. You can find it within the global variable $wpdb
.
So what you could do is to take the variable and print it into the HTML body like described in this answer, using the admin_footer
hook like this:
add_action('admin_footer', 'print_id_for_ajax');
function print_id_for_ajax() {
$post_id = isset($_GET['post']) ? $_GET['post'] : $GLOBALS['wpdb']->insert_id;
?>
<script>
var post_id = <?php echo $post_id ?>;
</script>
<?php
}
(Of course, only if $_GET['post']
is unset, if the post doesn't exist yet, do we want to take if from $GLOBALS['wpdb']
)
Put it into your theme's function.php
file and now you can use the post_id
variable inside of your javascript and pass it into the AJAX call.