Plugin Directory

Admin Page Framework

Facilitates WordPress plugin and theme development.


  • Fixed a bug that the Select All and Select None buttons were doubled when a checkbox and posttype field types were in the same form and not displayed with the taxonomy field type when there are no checkbox or posttype fields in the same page.
  • Tweaked the class selectors of admin notification elements to have dismiss buttons available in WordPress 4.2 or above.

3.5.11 - 2015/07/14

  • Added a warning to be displayed for forms in generic admin pages when the user form inputs exceeds the PHP max_input_vars value.
  • Added the column layout screen options for page meta boxes.
  • Fixed a bug that screen options were not saved in generic pages added by the framework.

3.5.10 - 2015/07/05

  • Added the show_submenu_add_new post type argument which enables to remove "Add New" sub-menu item from the sidebar menu.
  • Added the attributes and disabled arguments to page and in-page tab definition array which gets applied to navigation tab element.
  • Changed the behavior of the color field type to have the default value getting reflected in repeated field.
  • Fixed an issue that default values could not be set for user meta fields.
  • Fixed an issue that magic quotes were not sanitized in taxonomy field inputs.

3.5.9 - 2015/06/25

  • Added the ability for the size field type to create sub-fields by passing an array of labels.
  • Added the reset_... action hooks.
  • Added the ability to disable setting notices by passing an empty string to the setSettingNotice() method.
  • Added the ability for the admin page factory class to save form options only for a set time of period by passing an integer for the option key to the constructor.
  • Added the ability for transient utility methods to accept long transient key names.
  • Fixed an issue that post meta-box form fields were not able to set default values when there were existing meta data.
  • Fixed a bug in the getOption() utility method that the fourth parameter did not take effect when null is given to the second parameter.
  • Changed the timing of rendering the widget title to after the do_{...} and content_{...} hooks.
  • Changed the zip file name of generated framework files to have a version suffix.

3.5.8 - 2015/05/29

  • Added the ability for the getValue() method to set a default value with the second parameter when the first parameter is an array.
  • Added the ability for the text and textarea field types to create sub-input elements by passing an array to the label argument.
  • Added the width argument for the taxonomy field type.
  • Fixed a bug that the name attribute value was not set in post meta box fields in post-new.php, introduced in 3.5.7.
  • Fixed a bug with the taxonomy field type that could not list terms when the arguments argument misses the class argument. - 2015/05/11

  • Fixed a bug with referencing pressed submit button name attributes, introduced in 3.5.7.

3.5.7 - 2015/05/05

  • Fixed a compatibility issue with WordPress 4.2 or above that the taxonomy field type become not able to list taxonomy terms.
  • Tweaked styling of page meta-box form elements.

3.5.6 - 2015/03/15

  • Fixed a bug that form section values of page meta box could not be displayed.

3.5.5 - 2015/03/08

  • Added the footer_right_{...} and footer_left_{...} filter hooks.
  • Fixed an issue that the loader plugin could not get activated when a plugin that includes the framework of a lesser version that that not have a certain class constant.
  • Changed not to include the development version in the plugin distribution package.
  • Changed the setFooterInfoLeft() and setFooterInfoRight() methods to be deprecated which had not been functional since v3.1.3.

3.5.4 - 2015/03/02

  • Added the framework component generator in the loader plugin which can be accessed via Dashboard -> Admin Page Framework -> Tools -> Generator.
  • Added the export_header_{...} filters that lets the user set custom HTTP header outputs for the export field type.
  • Fixed a bug in the system field type that PHP warnings occurred when the permission to read error logs is not sufficient.
  • Changed the minified version to be deprecated.
  • Changed the version name of the development version to have .dev notation in the version name.

3.5.3 - 2015/02/21

  • Added the ability to reset individual field values with the reset argument of the submit field type.
  • Added a user meta factory class demo example.
  • Added the validate() and content() methods in the admin page factory class.
  • Added the fourth parameter to the validate() method of page meta box factory class to receive submit information.
  • Fixed a bug that invalid field values were stored when submitting the form multiple times using validation callback methods.
  • Fixed an issue in the loader plugin that after resetting the loader plugin options via the Debug tab, a warning 'You do not have sufficient permissions to access this page.' appeared.
  • Fixed an issue in the user meta factory class that a PHP notice, Trying to get property of non-object..., which appeared when creating a new user.
  • Fixed an issue that the image field type did not extend AdminPageFramework_FieldType but AdminPageFramework_FieldType_Base.

3.5.2 - 2015/02/02

  • Fixed a bug in the widget factory class that form sections could not be set.
  • Changed the class argument of the section definition array to accept a string. - 2015/01/24

  • Fixed a bug that caused non-object type PHP error in the post type factory class introduced in v3.5.1.

3.5.1 - 2015/01/23

  • Fixed a bug in the enqueueScripts() method of the admin page factory class.
  • Fixed a bug that message objects were not properly instantiated.
  • Fixed PHP strict standard warnings.

3.5.0 - 2015/01/22

  • Added the forth parameter of submit information to the validation filter callbacks so that callback methods can know which framework field submit button is pressed etc.
  • Added the a method to the field type class that is triggered when a field of the field type is registered.
  • Added the field_types_admin_page_framework filter that allows you to register field types sitewide.
  • Added the url argument for in-page tab definition arrays that allows the user to add link navigation tab.
  • Added a utility class for WordPres Readme parser and the markdown syntax.
  • Added a utility class for plugin bootstraps.
  • Added user meta factory class for adding fields in the user profile page.
  • Fixed the network admin factory class could not add plugin action links via the addLinkToPluginTitle() method.
  • Fixed an issue that empty strings could be inserted with the addLinkToPluginTitle() and addLinkToPluginDescription() method.
  • Fixed a bug that style_{...} and script_{...} filters were triggered twice in generic admin pages.
  • Fixed a bug that style_{page slug}_{tab slug}, style_{page_slug}, script_{page slug}_{tab slug}, and script_{page slug}_{tab slug} were not available.
  • Changed the demo plugin to be a loader plugin that loads Admin Page Framework.
  • Tweaked the styling of admin page container elements.

3.4.6 - 2015/01/06

  • Added a page that lets the user download the minified version of the framework in the demo examples.
  • Added a utility class that checks requirements of servers such as PHP and MySQL versions etc.
  • Added the print_type argument to the system field type.
  • Added more information to the system field type.
  • Added (revived) the minified version and it is now human readable.
  • Fixed an issue that form fields without setting a section were not registered in pages except first added ones.
  • Changed the timing of importing and exporting of the import and export field types to be done after performing validation callbacks. - 2015/01/01

  • Removed the minified version as the WordPress plugin team demanded to do so.

3.4.5 - 2014/12/27

  • Added the setting_update_url_{instantiated class name} filter hook and the pre-defined callback method.
  • CHanged the getValue() method of the admin page factory class to respect last input arrays.
  • Fixed a bug that caused a PHP warning that prevented a contact form from being sent on servers with some error reporting settings.
  • Fixed an issue on some servers that the script got aborted while sending an email of the contact form.
  • Fixed a url query key after submitting a contact form.
  • Tweaked the styling of the form confirmation message container element.

3.4.4 - 2014/12/17

  • Fixed a bug that in in-page tabs saving form values of page meta box fields caused data loss of other in-page tabs, introduced in v3.4.3.

3.4.3 - 2014/12/15

  • Added CSS rules for debug output container elements.
  • Changed the format of ID of section container elements.
  • Fixed a bug that repeated fields could not be removed in page meta boxes started in v3.4.1.
  • Fixed a bug that in page meta boxes, the select field type with the is_multiple argument enabled could not store the submitted data properly.
  • Fixed a bug that page meta boxes could not be added by in-page tab slug.

3.4.2 - 2014/12/08

  • Added the ability to automatically update the preview element of an image field when an image URL is manually typed without using the upload window.
  • Added the ability to accept URLs for the attachments argument for the email argument of the submit field type.
  • Changed the timing of the setUp() method of the post type factory class to let the post type arguments set in the method.
  • Fixed an issue of the custom media uploader with IE8.
  • Fixed a bug that the Insert from URL pane of the custom uploader modal window did not function even when the allow_external_source is set to true.

3.4.1 - 2014/12/02

  • Added the options_update_status_{...} and validation_saved_options_without_dynamic_elements_ filters for the admin page factory class.
  • Added the field_definition_{...} filters for the page meta box class.
  • Added the validate() and content() methods for the meta box and page meta box factory classes.
  • Changed the timing of field_definition_{...} filters of the admin page class.
  • Changed not to lose the input data when a form validation error occurs for the meta box, page meta box, and page classes.
  • Fixed an issue that github buttons of the github field type did not load in some sites.
  • Fixed a bug that repeatable sections could not be repeated when there is no collapsible section in the page.
  • Fixed a bug that the old options of the second parameter passed in a validation callback method of the page meta box class did not hold dynamic elements.
  • Fixed a bug that the action hooks and their predefined callbacks submit_{instantiated class name}_{page slug} and submit_after_{instantiated class name}_{page slug} did not work.

3.4.0 - 2014/11/23

  • Added the ability of collapsing and expanding section containers with the collapsible section definition argument.
  • Added the select_type argument for the revealer custom field type that enables to have checkboxes and radio buttons for the selector.
  • Tweaked the styling of the section_title field type.
  • Fixed a bug that the layout of form fields broke in Internet Explorer.

3.3.3 - 2014/11/08

  • Added the framework version indication at the bottom of form sections in meta-boxes and widgets when WP_Debug is true.
  • Changed not to display colon(:) after the field title if the title is empty in meta-boxes, taxonomy fields, and widgets.
  • Fixed a bug that a gray blank image was inserted in the featured image's image uploader when the framework media uploader is loaded, introduced in v3.3.1.
  • Fixed a bug that caused the uploader button of the media field type not appear, introduced in v3.3.2.

3.3.2 - 2014/11/07

  • Added the label_no_term_found, label_list_title, query, and queries arguments for the taxonomy field type.
  • Added the ability to compress CSS rules and JavaScript scripts defined in PHP variables for the minified version.
  • Tweaked the styling of the taxonomy field type to reflect the hierarchical depths.
  • Fixed a bug that resources of taxonomy fields added by the framework were loaded in other taxonomy pages that caused JavaScript errors.
  • Fixed a bug that meta box field values defined via the field_definition_{...} filter hooks were not saved.
  • Fixed a bug that setting sections for page meta box fields caused an error after submitting the form.
  • Fixed a bug that class selectors set in the top level of the class argument for fields got inserted in all type of field containers including fieldrow, fieldset, fields, field.
  • Fixed the for attribute value of label tags for fields to the focus input.

3.3.1 - 2014/11/02

  • Added the class argument for fields.
  • Added the class, attributes, hidden arguments for sections.
  • Added the submit_after_{...} action hooks that are triggered when the submitted form data are saved.
  • Added the value length to be indicated in the log file created with the log method of the debug class.
  • Fixed an issue that resources of widgets registered by the framework were loaded in all admin pages.
  • Fixed a jQuery method conflict of the sortable() plugin.
  • Tweaked the styling of sortable fields in meta boxes.
  • Tweaked the styling of form fields in meta boxes.
  • Changed the attributes field definition argument to be able to override the system set attributes.
  • Changed the built-in field types to extend the same base class to custom field types.

3.3.0 - 2014/10/22

  • Added the Select All and Select None buttons for check boxes.
  • Added the ace custom field type.
  • Added the ability to have different menu title from the page title with the page_title and menu_title argument pass to the addSubMenuItems() method.
  • Added the ability for the description field/section definition argument to accept an array to process elements as multiple paragraphs.
  • Added the ability to set custom arguments to enqueuing resource(style/script) tags.
  • Added an example of querying posts by custom meta key and value in the demo plugin.
  • Added the ability to send emails with the submit field type.
  • Added the reset custom field type.
  • Added the system field type (changed from a custom field type and became built-in).
  • Fixed an issue that JavaScript scripts added by widget fields could not be properly loaded in customize.php.
  • Fixed an issue of the revealer custom field type that the saved selected item could not be displayed after saving the form.
  • Fixed unescaped tags and attributes in tabs.
  • Fixed a bug that the reset argument of the submit field type caused a loss of stored options when the form fields are not added via the load_{...} hooks and have multiple pages are added.
  • Fixed an issue that when setting form elements with the load_{page slug}_{tab} hook, the fields could not be displayed if the user clicked on the sidebar menu and the tab is the default tab.
  • Fixed an issue that the TinyMCE rich editor could not be enabled in widget forms.
  • Fixed an issue that Quick Tags of rich editors could not be repeated.
  • Fixed an issue that values set to textarea tags were not escaped.
  • Optimized the process of handling field errors in post meta boxes.
  • Tweaked the timing of jQuery event binding of the date, 'date_time', and 'time' custom field types.
  • Tweaked the styling of remove buttons for image, media, font field types for WordPress 3.7.x or below.
  • Tweaked the styling of sortable fields.
  • Tweaked the styling of widget forms.
  • Changed to prevent posts from being published if there are field errors of meta boxes.
  • Changed the layout of meta-box field table by making the field title column to be displayed as inline-block.
  • Changed the metabox factory class to accept an empty ID to be passed to let the factory class automatically generates an ID from the class name.
  • Changed the timing of finalizing in-page tabs.
  • Changed the positions of the + and - repeatable buttons.

Old Change Log Items

Requires: 3.3 or higher
Compatible up to: 4.2.4
Last Updated: 2015-8-9
Active Installs: 400+


4.8 out of 5 stars


5 of 10 support threads in the last two months have been resolved.

Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,2,2 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1
100,3,3 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1
100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,2,2 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1