essentially i am creating a custom write panel that has a dropdown in it with a list of the grandchildren pages that you helped me with before. the idea is that someone can submit a post in the report category and can then assign the report to a trip using the id into a custom field. the above code is being used to get the list of grandchildren from the top parent (the grandparent). however since this is now in the function file and inside a function it isn’t getting the post data such as the parent id and title.
here is all the code:
$new_meta_boxes =
array(
"triplist" => array(
"type" => "select",
"std" => "",
"name" => "asigntrip",
"title" => "Assign Trip",
"description" => "")
);
function new_meta_boxes() {
global $post, $new_meta_boxes;
$triplistarray = array();
$tripparent = 2;
$args=array(
'child_of' => $tripparent,
);
$gettrips = get_pages($args);
if (@count($gettrips)) {
foreach($gettrips as $post) {
$parentid=$trip->post_parent;
if ($trip->ID !== $parentid ) {
array_push($triplistarray,$post->ID);
}
} // foreach($pages
} // if ($pages
foreach($new_meta_boxes as $meta_box) {
echo'<input type="hidden" name="'.$meta_box['name'].'_noncename" id="'.$meta_box['name'].'_noncename" value="'.wp_create_nonce( plugin_basename(__FILE__) ).'" />';
echo'<h2>'.$meta_box['title'].'</h2>';
if( $meta_box['type'] == "text" ) {
$meta_box_value = get_post_meta($post->ID, $meta_box['name'].'_value', true);
if($meta_box_value == "")
$meta_box_value = $meta_box['std'];
echo'<input type="text" name="'.$meta_box['name'].'_value" value="'.$meta_box_value.'" size="55" />';
} elseif ( $meta_box['type'] == "select" ) {
echo'<select name="'.$meta_box['name'].'_value">';
echo'<option value="">select trip</option>';
foreach ($triplistarray as $option) {
if ( get_post_meta($post->ID, $meta_box['name'].'_value', true) == $option ) {
$sel = ' selected="selected"';
} elseif ( $option == $meta_box['std'] ) {
$sel = ' selected="selected"';
}
echo'<option value="'.$option.'"'. $sel .'>'. $post->post_title .'</option>';
}
echo'</select>';
}
echo'<p><label for="'.$meta_box['name'].'_value">'.$meta_box['description'].'</label></p>';
}
}
function create_meta_box() {
global $theme_name;
if (function_exists('add_meta_box') ) {
add_meta_box( 'new-meta-
boxes', 'More Info', 'new_meta_boxes', 'post', 'normal', 'high' );
}
}
function save_postdata( $post_id ) {
global $post, $new_meta_boxes;
foreach($new_meta_boxes as $meta_box) {
// Verify
if ( !wp_verify_nonce( $_POST[$meta_box['name'].'_noncename'], plugin_basename(__FILE__) )) {
return $post_id;
}
if ( 'page' == $_POST['post_type'] ) {
if ( !current_user_can( 'edit_page', $post_id ))
return $post_id;
} else {
if ( !current_user_can( 'edit_post', $post_id ))
return $post_id;
}
$data = $_POST[$meta_box['name'].'_value'];
if(get_post_meta($post_id, $meta_box['name'].'_value') == "")
add_post_meta($post_id, $meta_box['name'].'_value', $data, true);
elseif($data != get_post_meta($post_id, $meta_box['name'].'_value', true))
update_post_meta($post_id, $meta_box['name'].'_value', $data);
elseif($data == "")
delete_post_meta($post_id, $meta_box['name'].'_value', get_post_meta($post_id, $meta_box['name'].'_value', true));
}
}
add_action('admin_menu', 'create_meta_box');
add_action('save_post', 'save_postdata');
i really appreciate your help