Dropdown to set parent page
Author | Posts |
---|---|
February 10, 2014 at 6:34 pm 15277 | |
Daniel | This plugin is really fantastic.
I am currently using a custom hook to pull in some extra elements, but am having a bit of an issue with setting the parent page for the page I am editing/creating.
I've checked in the backend and in the database and it should be set with an ID in the field post_parent.
Fair enough, I have the following code
<?php //Check if this is an existing post if (isset( $post_id )) { //Fetch the post_parent $parentquery = new WP_Query( 'page_id='.$post_id ); while ( $parentquery->have_posts() ) { $parentquery->the_post(); echo 'postID is: ' . $post_id . '<br>'; echo 'Is a page' . is_page() . '<br>'; echo 'The title is' . $post->post_title . '<br>'; echo 'Post Parent is: ' . $post->post_parent . '<br>'; $hasparent = $post->post_parent; var_dump($hasparent); } wp_reset_postdata(); //Reset the query //Set the arguments with a selected parent if possible, and exclude the current page from the list and limit it to top level pages. $parentargs = array( 'depth' => 1, 'selected' => $hasparent, 'exclude' => $post_id, 'name' => 'post_parent'); } else{ $parentargs = array( 'depth' => 1, 'name' => 'post_parent'); } //output a dropdown with all pages wp_dropdown_pages($parentargs); ?>Everything seem hunky-dory, and it fetches and selects the correct option. When I post though, It resets the post_parent to 0. I post the data with a function with the following function update_my_pagefields( $post_id ) { if ( isset( $_POST['post_parent'] ) ) { update_post_meta( $post_id, 'post_parent', $_POST['post_parent'] ); } } add_action( 'wpuf_add_post_after_insert', 'update_my_pagefields' ); add_action( 'wpuf_edit_post_after_update', 'update_my_pagefields' );Can anyone help me shed any light on this? |
February 10, 2014 at 8:58 pm 15279 | |
Daniel | OK, now I feel silly. After a lot of researching and googling, I got a hint that the problem was the way I tried to save the data using update_post_meta() That function works only on custom meta-fields. However, it was a lot easier to update using a query through the$wpdb->query Example.
So yeah, this subject can be closed. Hope this helps some one else trying to do the same. |
February 10, 2014 at 10:51 pm 15282 | |
Tareq Hasan | Or, you could use this: |
February 11, 2014 at 2:17 pm 15309 | |
Daniel | Thank you Tareq, yeah, I guess that is always an option. 🙂 And it is a lot more elegant. Will give it a whirl. |