admin_url('admin-ajax.php'), 'ajax_nonce' => wp_create_nonce('advanced_search_submit'), ); //wp_register_script( 'advaced_admin_search_script', 'dummy.js' ); wp_enqueue_script( 'advaced_admin_search_script' ); wp_localize_script( 'advaced_admin_search_script', 'advanced_admin_search', $params ); } function AASKP_SearchBox() { global $wp_admin_bar; $wp_admin_bar->add_menu(array( 'id' => 'search_form', 'parent' => 'top-secondary', 'title' => '' )); } function AASKP_displayInput() { echo '
'; } function AASKP_desktopSearchJavascript() { echo ''; } function AASKP_mobileSearchJavascript() { echo ''; } function AASKP_searchAction() { if (isset($_POST['post_search']) && isset($_POST['security'])) { $post_search = sanitize_text_field( $_POST['post_search'] ); $security_check = sanitize_text_field( $_POST['security'] ); $check = wp_create_nonce('advanced_search_submit'); if($security_check == $check) { if(!empty($post_search)) { $results = array(); // all results available for search $post_types = get_post_types(array('public' => true)); $post_types = array_values($post_types); // get pre search results from hook $pre_filtered_result = apply_filters('aaskp_pre_search', $post_search); if( is_array($pre_filtered_result) ){ $results = array_merge($results, $pre_filtered_result); } $results = array_merge( $results, // pre search $this->AASKP_getUsers($post_search), // user results $this->AASKP_getPostsAndPages($post_search), // post types $this->AASKP_getMedia($post_search), // attachments $this->AASKP_getTaxonomies($post_search), // taxonomies $this->AASKP_getPostMeta($post_search), // post meta $this->AASKP_getComments($post_search) // comments ); // get post search results from hook $post_filtered_result = apply_filters('aaskp_post_search', $post_search); if( is_array($post_filtered_result) ){ $results = array_merge($results, $post_filtered_result); } // finally print the results $this->AASKP_printResults($results,$post_search); } } else { echo "Invalid Request"; } } else { echo "Refine Your Search"; } wp_die(); } function AASKP_printResults($results,$post_search){ if(count($results)==0) { echo "
  • Result not Found. Please Refine Your Search
  • "; } else{ if(count($results)>10) { $results1=array_slice($results,0,10); } else{ $results1=array_merge($results); } foreach ($results1 as $row) { $image = ""; if(isset($row['image'])){ $image = ""; } echo "
  • " . $image . $row['title'] . "

    " . $row['status'] . "

    " . $row['info'] . "

  • "; } echo "
  • '".$post_search."' search has "; echo "".count($results).""; echo " results.
  • "; } } function AASKP_getUsers($post_search){ $output = array(); $users = get_users( array( 'search' => "*{$post_search}*", 'fields' => array( 'display_name', 'user_registered', 'id' ) ) ); foreach ( $users as $user ) { $url = admin_url( 'user-edit.php?user_id='.$user->id ); $getUser = get_userdata( $user->id ); $role = $getUser->roles; foreach ($role as $value) { $output[] = array( 'link' => $url, 'title' => $user->display_name, 'status' => $value, 'info' => $user->user_registered, 'image' => esc_url( get_avatar_url( $user->ID ) ) ); } } return $output; } function AASKP_getPostsAndPages($post_search){ $output = array(); $posts = get_posts( array( 's' => $post_search, 'post_status' => array('publish', 'pending', 'draft', 'auto-draft', 'future', 'private', 'trash'), 'post_type' => 'any', 'posts_per_page' => -1 ) ); foreach ($posts as $post) { $url = admin_url( 'post.php?post='.$post->ID.'&action=edit' ); $post_type = $post->post_type; $output[]=array( 'link' => $url, 'title' => $post->post_title, 'status' => $post->post_status, 'info' => 'Type: '.$post->post_type, ); } return $output; } function AASKP_getMedia($post_search){ $output = array(); $mediaPosts = get_posts( array( 's' => $post_search, 'post_type' => 'attachment', 'post_status' => 'inherit', 'posts_per_page' => -1 ) ); foreach ($mediaPosts as $mediaPost) { $url = admin_url( 'post.php?post='.$mediaPost->ID.'&action=edit' ); $post_type = $mediaPost->post_type; $image_url = wp_get_attachment_image_src($mediaPost->ID); $output[]=array( 'link' => $url, 'title' => $mediaPost->post_title, 'info' => $mediaPost->post_date, 'image'=> $image_url[0] ); } return $output; } function AASKP_getTaxonomies($post_search){ $output = array(); $taxonomies = get_terms( array( 'search' => $post_search ) ); foreach ($taxonomies as $taxonomy) { $url = admin_url( 'term.php?taxonomy='.$taxonomy->taxonomy.'&tag_ID='.$taxonomy->term_id.'&post_type=post&wp_http_referer=%2Fwp-admin%2Fedit-tags.php%3Ftaxonomy%3Dcategory' ); $output[]=array( 'link' => $url, 'title' => $taxonomy->name, 'info' => 'Taxonomy: '.$taxonomy->taxonomy, ); } return $output; } function AASKP_getPostMeta($post_search){ global $wpdb; $output = array(); $postMeta = $wpdb->get_results("SELECT * FROM wp_postmeta WHERE meta_key LIKE '%".$post_search."%' OR meta_value LIKE '%".$post_search."%'"); foreach ($postMeta as $meta) { $url = admin_url( 'post.php?post='.$meta->post_id.'&action=edit' ); $getPost = get_post( $meta->post_id ); if (strpos($meta->meta_key,$post_search) !== false) { $output[]=array( 'link' => $url, 'title' => $getPost->post_title, 'status' => 'Meta Key: '.$meta->meta_key, 'info' => $meta->meta_value, ); } else { $output[]=array( 'link' => $url, 'title' => $getPost->post_title, 'info' => 'Meta Value: '.$meta->meta_value, ); } } return $output; } function AASKP_getComments($post_search){ $output = array(); $comments = get_comments( array( 'search' => $post_search ) ); foreach ($comments as $comment) { $url = admin_url( 'edit-comments.php' ); $output[]=array( 'link' => $url, 'title' => $comment->comment_author_email, 'info' =>'Comment'. $comment->comment_content, ); } return $output; } } new AASKP_advancedAdminSearch(); ?>