flush_rules(); } ?>

Managing custom fields for hundreds or thousands of posts can be tedious and daunting! Airpress Virtual Fields allow you to automatically retrieve Airtable records for each post/page/etc by specifying a Wordpress field (such as ID or post_name) and an Airtable table and field.

"New Configuration"); // $configs[] = $config; // $active_tab = count($configs)-1; // set_airpress_config("airpress_vf",$active_tab,$config); // } else { // $active_tab = $requested_tab; // } // $_GET['tab'] = $active_tab; // foreach($configs as $key => $config){ // airpress_admin_vf_tab($key,$config); // } // } // add_action( 'admin_init', 'airpress_admin_vf_tab_controller'); /***********************************************/ # TAB: DEFAULT /***********************************************/ function airpress_admin_vf_tab($key,$config) { $option_name = "airpress_vf".$key; //$options = get_option( $option_name ); $defaults = array( "name" => "New Configuration", "connection" => null, "post_type" => null, "table" => "Your Airtable Table", "column" => "Your Airtable Column", "field" => "Your Wordpress Field", "single" => 0 ); $options = array_merge($defaults,$config); ################################ ################################ $section_title = "Virtual Fields"; $section_name = "airpress_vf".$key; add_settings_section( $section_name, __( $section_title, 'airpress' ), "airpress_admin_vf_render_section", $option_name ); ################################ $field_name = "name"; $field_title = "Configuration Name"; add_settings_field( $field_name, __( $field_title, 'airpress' ), 'airpress_admin_vf_render_element_text', $option_name, $section_name, array($options,$option_name,$field_name) ); ################################ $field_name = "connection"; $field_title = "Select Connection"; add_settings_field( $field_name, __( $field_title, 'airpress' ), 'airpress_admin_vf_render_element_select_connections', $option_name, $section_name, array($options,$option_name,$field_name) ); ################################ ################################ $section_title = ""; $section_name = "airpress_vf".$key; $option_name = 'airpress_vf'.$key; add_settings_section( $section_name, __( $section_title, 'airpress' ), "airpress_admin_vf_render_section", $option_name ); ################################ $field_name = "post_type"; $field_title = "Select Post Type"; add_settings_field( $field_name, __( $field_title, 'airpress' ), 'airpress_admin_vf_render_element_select__posttypes', $option_name, $section_name, array($options,$option_name,$field_name) ); ################################ $field_name = "table"; $field_title = "Airtable Table Name"; add_settings_field( $field_name, __( $field_title, 'airpress' ), 'airpress_admin_vf_render_element_text', $option_name, $section_name, array($options,$option_name,$field_name) ); ################################ $field_name = "column"; $field_title = "Airtable Column"; add_settings_field( $field_name, __( $field_title, 'airpress' ), 'airpress_admin_vf_render_element_text', $option_name, $section_name, array($options,$option_name,$field_name) ); ################################ $field_name = "field"; $field_title = "Wordpress Field (ID or post_name)"; add_settings_field( $field_name, __( $field_title, 'airpress' ), 'airpress_admin_vf_render_element_text', $option_name, $section_name, array($options,$option_name,$field_name) ); ################################ $field_name = "single"; $field_title = "Enable only for single posts (not archive, search, etc)"; add_settings_field( $field_name, __( $field_title, 'airpress' ), 'airpress_admin_vf_render_element_toggle', $option_name, $section_name, array($options,$option_name,$field_name) ); ############################### $field_name = "delete"; $field_title = "Delete Configuration?"; add_settings_field( $field_name, __( $field_title, 'airpress' ), 'airpress_admin_vf_render_element_delete', $option_name, $section_name, array($options,$option_name,$field_name) ); register_setting($option_name,$option_name,"airpress_vf_validation"); } function airpress_vf_validation($config){ return $config; } function airpress_admin_vf_render_section__general() { echo '

' . __( 'Provides examples of the five basic element types.', 'sandbox' ) . '

'; } function airpress_admin_vf_render_section() { echo '

' . __( '', 'airpress' ) . '

'; } function airpress_admin_vf_render_element_text($args) { $options = $args[0]; $option_name = $args[1]; $field_name = $args[2]; echo ''; } function airpress_admin_vf_render_element_toggle($args) { $options = $args[0]; $option_name = $args[1]; $field_name = $args[2]; $checked = checked( 1, isset( $options[$field_name] ) ? $options[$field_name] : 0, false ); echo ''; echo ''; } function airpress_admin_vf_render_element_select__posttypes($args) { $options = $args[0]; $option_name = $args[1]; $field_name = $args[2]; $post_types = get_post_types( array( 'public' => true) ); echo ''; } function airpress_admin_vf_render_element_select_connections($args) { $options = $args[0]; $option_name = $args[1]; $field_name = $args[2]; $connections = get_airpress_configs("airpress_cx"); echo ''; } function airpress_admin_vf_render_element_select__page($args) { $options = $args[0]; $option_name = $args[1]; $field_name = $args[2]; $pages = get_pages(); echo ''; } function airpress_admin_vf_render_element_delete($args) { $options = $args[0]; $option_name = $args[1]; $field_name = $args[2]; $tab = (int)$_GET["tab"]; echo "Yes, delete this configuration"; } ?>