Overview

Classes

  • Papi_Admin
  • Papi_Admin_Ajax
  • Papi_Admin_Assets
  • Papi_Admin_Management_Pages
  • Papi_Admin_Menu
  • Papi_Admin_Meta_Box
  • Papi_Admin_Meta_Box_Tabs
  • Papi_Admin_Option_Handler
  • Papi_Admin_Post_Handler
  • Papi_Admin_View
  • Papi_Attachment_Type
  • Papi_Conditional_Rules
  • Papi_Container
  • Papi_Core_Autoload
  • Papi_Core_Conditional
  • Papi_Core_Conditional_Rule
  • Papi_Core_Data_Handler
  • Papi_Core_Page
  • Papi_Core_Property
  • Papi_Core_Type
  • Papi_Loader
  • Papi_Option_Page
  • Papi_Option_Type
  • Papi_Page_Type
  • Papi_Page_Type_Meta
  • Papi_Porter
  • Papi_Porter_Driver
  • Papi_Porter_Driver_Core
  • Papi_Post_Page
  • Papi_Property
  • Papi_Property_Bool
  • Papi_Property_Checkbox
  • Papi_Property_Color
  • Papi_Property_Datetime
  • Papi_Property_Divider
  • Papi_Property_Dropdown
  • Papi_Property_Editor
  • Papi_Property_Email
  • Papi_Property_File
  • Papi_Property_Flexible
  • Papi_Property_Gallery
  • Papi_Property_Hidden
  • Papi_Property_Html
  • Papi_Property_Image
  • Papi_Property_Link
  • Papi_Property_Number
  • Papi_Property_Post
  • Papi_Property_Radio
  • Papi_Property_Reference
  • Papi_Property_Relationship
  • Papi_Property_Repeater
  • Papi_Property_String
  • Papi_Property_Term
  • Papi_Property_Text
  • Papi_Property_Url
  • Papi_Property_User

Functions

  • current_page
  • papi
  • papi_action_delete_value
  • papi_action_include
  • papi_append_post_type_query
  • papi_body_class
  • papi_cache_delete
  • papi_cache_get
  • papi_cache_key
  • papi_cache_set
  • papi_camel_case
  • papi_cast_string_value
  • papi_convert_to_string
  • papi_current_user_is_allowed
  • papi_dashify
  • papi_delete_field
  • papi_delete_option
  • papi_delete_property_meta_value
  • papi_display_page_type
  • papi_doing_ajax
  • papi_esc_html
  • papi_f
  • papi_field
  • papi_field_shortcode
  • papi_field_value
  • papi_fields
  • papi_filter_conditional_rule_allowed
  • papi_filter_core_load_one_type_on
  • papi_filter_format_value
  • papi_filter_load_value
  • papi_filter_settings_directories
  • papi_filter_settings_only_page_type
  • papi_filter_settings_page_type_column_title
  • papi_filter_settings_show_page_type
  • papi_filter_settings_show_standard_page_type
  • papi_filter_settings_show_standard_page_type_in_filter
  • papi_filter_settings_sort_order
  • papi_filter_settings_standard_page_description
  • papi_filter_settings_standard_page_name
  • papi_filter_settings_standard_page_thumbnail
  • papi_filter_update_value
  • papi_from_property_array_slugs
  • papi_get_all_files_in_directory
  • papi_get_all_page_type_files
  • papi_get_all_page_types
  • papi_get_box_property
  • papi_get_class_name
  • papi_get_field
  • papi_get_file_path
  • papi_get_number_of_pages
  • papi_get_only_objects
  • papi_get_option
  • papi_get_options_and_properties
  • papi_get_or_post
  • papi_get_page
  • papi_get_page_new_url
  • papi_get_page_query_strings
  • papi_get_page_type
  • papi_get_page_type_base_path
  • papi_get_page_type_by_id
  • papi_get_page_type_by_post_id
  • papi_get_page_type_id
  • papi_get_page_type_key
  • papi_get_page_type_meta_value
  • papi_get_page_type_name
  • papi_get_page_type_template
  • papi_get_parent_post_id
  • papi_get_post_id
  • papi_get_post_type
  • papi_get_post_type_label
  • papi_get_post_types
  • papi_get_property_class_name
  • papi_get_property_meta_value
  • papi_get_property_options
  • papi_get_property_type
  • papi_get_property_type_key
  • papi_get_property_type_key_f
  • papi_get_qs
  • papi_get_sanitized_post
  • papi_get_slugs
  • papi_get_tab_options
  • papi_html_name
  • papi_html_tag
  • papi_include_template
  • papi_is_empty
  • papi_is_json
  • papi_is_method
  • papi_is_option_page
  • papi_is_option_type
  • papi_is_page_type
  • papi_is_property
  • papi_is_property_type_key
  • papi_is_rule
  • papi_management_page_type_render_box
  • papi_maybe_convert_to_array
  • papi_maybe_convert_to_object
  • papi_maybe_get_callable_value
  • papi_maybe_json_decode
  • papi_maybe_json_encode
  • papi_nl2br
  • papi_option_shortcode
  • papi_option_type_exists
  • papi_page_type_exists
  • papi_populate_properties
  • papi_property
  • papi_remove_papi
  • papi_remove_trailing_quotes
  • papi_render_html_tag
  • papi_render_properties
  • papi_render_property
  • papi_require_text
  • papi_required_html
  • papi_rule
  • papi_santize_data
  • papi_set_page_type_id
  • papi_setup_tabs
  • papi_slugify
  • papi_sort_order
  • papi_tab
  • papi_template
  • papi_template_include
  • papi_to_array
  • papi_to_property_array_slugs
  • papi_translate_keys
  • papi_underscorify
  • papi_update_field
  • papi_update_option
  • papi_update_property_meta_value
  • papi_with
  • papify
  • the_papi_field
  • the_papi_option
  • the_papi_page_type_name
  • Overview
  • Class
  1: <?php
  2: 
  3: /**
  4:  * Get the url to 'post-new.php' with query string of the page type to load.
  5:  *
  6:  * @param  string $page_type
  7:  * @param  bool   $append_admin_url
  8:  * @param  string $post_type
  9:  * @param  array  $exclude
 10:  *
 11:  * @return string
 12:  */
 13: function papi_get_page_new_url( $page_type, $append_admin_url = true, $post_type = null, $exclude = [] ) {
 14:     $admin_url = $append_admin_url ? get_admin_url() : '';
 15: 
 16:     $admin_url = $admin_url . 'post-new.php?page_type=' . $page_type . papi_get_page_query_strings( '&', $exclude );
 17: 
 18:     if ( ! is_null( $post_type ) && in_array( 'post_type', $exclude ) ) {
 19:         $admin_url = str_replace( '&&', '&', $admin_url . '&post_type=' . $post_type );
 20:     }
 21: 
 22:     return papi_append_post_type_query( $admin_url, $post_type );
 23: }
 24: 
 25: /**
 26:  * Get page query strings.
 27:  *
 28:  * @param  string $first_char
 29:  * @param  array  $exclude
 30:  *
 31:  * @return string
 32:  */
 33: function papi_get_page_query_strings( $first_char = '&', $exclude = [] ) {
 34:     $request_uri = $_SERVER['REQUEST_URI'];
 35:     $parsed_url  = parse_url( $request_uri );
 36: 
 37:     if ( ! isset( $parsed_url['query'] ) || empty( $parsed_url['query'] ) ) {
 38:         return '';
 39:     }
 40: 
 41:     $query = $parsed_url['query'];
 42:     $query = preg_replace( '/page\=[a-z-,]+/', '', $query );
 43:     $query = str_replace( '?', '', $query );
 44:     $query = explode( '&', $query );
 45: 
 46:     $query = array_filter( $query, function ( $q ) use ( $exclude ) {
 47:         $q = explode( '=', $q );
 48: 
 49:         if ( empty( $q ) || empty( $q[0] ) ) {
 50:             return false;
 51:         }
 52: 
 53:         if ( empty( $exclude ) ) {
 54:             return true;
 55:         }
 56: 
 57:         return ! in_array( $q[0], $exclude );
 58:     } );
 59: 
 60:     $query = implode( '&', $query );
 61:     $query = $first_char . $query;
 62: 
 63:     if ( in_array( 'post_type', $exclude ) ) {
 64:         return $query;
 65:     }
 66: 
 67:     if ( $query === $first_char ) {
 68:         $query = '';
 69:     }
 70: 
 71:     $empty_query = empty( $query );
 72:     $query = papi_append_post_type_query( $query );
 73: 
 74:     if ( $empty_query ) {
 75:         return $first_char . substr( $query, 1 );
 76:     }
 77: 
 78:     return $query;
 79: }
 80: 
 81: /**
 82:  * Append post type query string.
 83:  *
 84:  * @param  string $url
 85:  * @param  string $post_type_arg
 86:  *
 87:  * @return string
 88:  */
 89: function papi_append_post_type_query( $url, $post_type_arg = null ) {
 90:     if ( strpos( $url, 'post_type=' ) !== false ) {
 91:         return preg_replace( '/&%.+/', '', $url );
 92:     }
 93: 
 94:     $post_id = papi_get_post_id();
 95: 
 96:     if ( $post_id === 0 ) {
 97:         $post_type = papi_get_or_post( 'post_type' );
 98:     } else {
 99:         $post_type = get_post_type( $post_id );
100:     }
101: 
102:     if ( ! empty( $post_type_arg ) && empty( $post_type ) ) {
103:         $post_type = $post_type_arg;
104:     }
105: 
106:     if ( empty( $post_type ) ) {
107:         $post_type = 'post';
108:     }
109: 
110:     if ( ! empty( $post_type ) ) {
111:         if ( substr( $url, - 1, 1 ) !== '&' ) {
112:             $url .= '&';
113:         }
114: 
115:         $url .= 'post_type=' . $post_type;
116:     }
117: 
118:     return $url;
119: }
120: 
API documentation generated by ApiGen