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:  * Add page type class name as a css class on body.
  5:  *
  6:  * @param  array $classes
  7:  *
  8:  * @return array
  9:  */
 10: function papi_body_class( array $classes ) {
 11:     global $post;
 12: 
 13:     // Check so we only change template on single and page posts.
 14:     if ( ! is_single() && ! is_page() ) {
 15:         return $classes;
 16:     }
 17: 
 18:     $page_type = get_post_meta( $post->ID, papi_get_page_type_key(), true );
 19: 
 20:     if ( empty( $page_type ) ) {
 21:         return $classes;
 22:     }
 23: 
 24:     $parts = explode( '/', $page_type );
 25: 
 26:     if ( empty( $parts ) || empty( $parts[0] ) ) {
 27:         return $classes;
 28:     }
 29: 
 30:     $classes[] = array_pop( $parts );
 31: 
 32:     return $classes;
 33: }
 34: 
 35: add_filter( 'body_class', 'papi_body_class' );
 36: 
 37: /**
 38:  * Include partial view.
 39:  *
 40:  * @param string $file
 41:  * @param array $vars
 42:  */
 43: function papi_include_template( $file, $vars = [] ) {
 44:     if ( ! is_string( $file ) || empty( $file ) ) {
 45:         return;
 46:     }
 47: 
 48:     $path = PAPI_PLUGIN_DIR;
 49:     $path = rtrim( $path, '/' ) . '/';
 50: 
 51:     if ( file_exists( $path . $file ) ) {
 52:         require $path . $file;
 53:     }
 54: }
 55: 
 56: /**
 57:  * Load a template array file and merge values with it.
 58:  *
 59:  * @param  string $file
 60:  * @param  array $values
 61:  * @param  bool $convert_to_object
 62:  *
 63:  * @return array
 64:  */
 65: function papi_template( $file, $values = [], $convert_to_object = false ) {
 66:     if ( ! is_string( $file ) || empty( $file ) ) {
 67:         return [];
 68:     }
 69: 
 70:     $filepath = papi_get_file_path( $file );
 71: 
 72:     if ( empty( $filepath ) && is_file( $file ) ) {
 73:         $filepath = $file;
 74:     }
 75: 
 76:     if ( empty( $filepath ) || ! file_exists( $filepath ) || is_dir( $filepath ) ) {
 77:         return [];
 78:     }
 79: 
 80:     $template = require $filepath;
 81: 
 82:     if ( papi_is_property( $template ) ) {
 83:         foreach ( $values as $key => $value ) {
 84:             $template->set_option( $key, $value );
 85:         }
 86: 
 87:         $result = $template;
 88:     } else {
 89:         $result = array_merge( (array) $template, $values );
 90:     }
 91: 
 92:     if ( $convert_to_object ) {
 93:         return (object) $result;
 94:     }
 95: 
 96:     return $result;
 97: }
 98: 
 99: /**
100:  * Include template files from Papis custom page template meta field.
101:  *
102:  * @param  string $original_template
103:  *
104:  * @return string
105:  */
106: function papi_template_include( $original_template ) {
107:     global $post;
108: 
109:     // Check so we only change template on single and page posts.
110:     if ( ! is_single() && ! is_page() ) {
111:         return $original_template;
112:     }
113: 
114:     $page_template = papi_get_page_type_template( $post->ID );
115: 
116:     if ( ! empty( $page_template ) ) {
117:         $path = get_template_directory();
118:         $path = trailingslashit( $path );
119:         $file = $path . $page_template;
120: 
121:         if ( file_exists( $file ) && ! is_dir( $file ) ) {
122:             return $file;
123:         }
124:     }
125: 
126:     return $original_template;
127: }
128: 
129: add_filter( 'template_include', 'papi_template_include' );
130: 
API documentation generated by ApiGen