Skip to content

Instantly share code, notes, and snippets.

@deckerweb
Forked from DomenicF/get_current_post_type.php
Created September 21, 2018 22:54
Show Gist options
  • Save deckerweb/61bb94cae4c2a69f142bb3e087e2eadc to your computer and use it in GitHub Desktop.
Save deckerweb/61bb94cae4c2a69f142bb3e087e2eadc to your computer and use it in GitHub Desktop.
Get the current post_type context in the WordPress admin.
<?php
/**
* gets the current post type in the WordPress Admin
*/
function get_current_post_type() {
global $post, $typenow, $current_screen;
//we have a post so we can just get the post type from that
if ( $post && $post->post_type ) {
return $post->post_type;
}
//check the global $typenow - set in admin.php
elseif ( $typenow ) {
return $typenow;
}
//check the global $current_screen object - set in sceen.php
elseif ( $current_screen && $current_screen->post_type ) {
return $current_screen->post_type;
}
//check the post_type querystring
elseif ( isset( $_REQUEST['post_type'] ) ) {
return sanitize_key( $_REQUEST['post_type'] );
}
//lastly check if post ID is in query string
elseif ( isset( $_REQUEST['post'] ) ) {
return get_post_type( $_REQUEST['post'] );
}
//we do not know the post type!
return null;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment