[oik] plugins.com

WordPress plugins and themes

  • Home
  • About
    • lazy shortcodes
    • smart shortcodes
    • oik base plugin
      • oik – donate
      • oik PayPal buttons
      • oik installation
      • oik Button Shortcode button
      • oik changelog
      • oik FAQ
      • oik plugins on SVN
      • oik plugins on GitHub
  • Plugins
    • oik base plugin
    • FREE oik plugins
    • WordPress plugins
    • Premium oik plugins
    • Bespoke oik plugins
  • Shortcodes
    • Shortcode examples
  • Blocks
    • Block examples
  • APIs
    • ALL action and filter hooks
  • Blog

bw_register_post_type() – Register a custom post type using as many defaults as we can

Description

Register a custom post type using as many defaults as we can

Note: Post type registrations should not be hooked before the init action. Also, any taxonomy connections should be registered via the $taxonomies argument to ensure consistency when hooks such as parse_query or pre_get_posts are used. Post types can support any number of built-in core features such as meta boxes, custom fields, post thumbnails, post statuses, comments, and more. See the $supports argument for a complete list of supported features. Notes:

  • Whereas register_post_type accepts a string of arguments as the second parameter we do not.
  • Do not use before init
  • Now unsets 'cap' which may have been erroneously passed instead of 'capabilities'

Usage

$WP_Post_Type|WP_Error = bw_register_post_type( $post_type, $post_type_args );

Parameters

$post_type
( string ) required – Post type key. Must not exceed 20 characters and may only contain lowercase alphanumeric characters, dashes, and underscores. See sanitize_key().
$post_type_args
( array|string ) required – { Array of arguments for registering a post type.
$label
( string ) required – Name of the post type shown in the menu. Usually plural. Default is value of $labels['name'].
$labels
( array ) required – An array of labels for this post type. If not set, post labels are inherited for non-hierarchical types and page labels for hierarchical ones. See get_post_type_labels() for a full list of supported labels.
$description
( string ) required – A short descriptive summary of what the post type is. Default empty.
$public
( bool ) required – Whether a post type is intended for use publicly either via the admin interface or by front-end users. While the default settings of $exclude_from_search, $publicly_queryable, $show_ui, and $show_in_nav_menus are inherited from public, each does not rely on this relationship and controls a very specific intention. Default false.
$hierarchical
( bool ) required – Whether the post type is hierarchical (e.g. page). Default false.
$exclude_from_search
( bool ) required – Whether to exclude posts with this post type from front end search results. Default is the opposite value of $public.
$publicly_queryable
( bool ) required – Whether queries can be performed on the front end for the post type as part of parse_request(). Endpoints would include:
  • ?post_type={post_type_key}
  • ?{post_type_key}={single_post_slug}
  • ?{post_type_query_var}={single_post_slug}
If not set, the default is inherited from $public.
$show_ui
( bool ) required – Whether to generate and allow a UI for managing this post type in the admin. Default is value of $public.
$show_in_menu
( bool ) required – Where to show the post type in the admin menu. To work, $show_ui must be true. If true, the post type is shown in its own top level menu. If false, no menu is shown. If a string of an existing top level menu (eg. 'tools.php' or 'edit.php?post_type=page'), the post type will be placed as a sub-menu of that. Default is value of $show_ui.
$show_in_nav_menus
( bool ) required – Makes this post type available for selection in navigation menus. Default is value $public.
$show_in_admin_bar
( bool ) required – Makes this post type available via the admin bar. Default is value of $show_in_menu.
$menu_position
( int ) required – The position in the menu order the post type should appear. To work, $show_in_menu must be true. Default null (at the bottom).
$menu_icon
( string ) required – The url to the icon to be used for this menu. Pass a base64-encoded SVG using a data URI, which will be colored to match the color scheme — this should begin with 'data:image/svg+xml;base64,'. Pass the name of a Dashicons helper class to use a font icon, e.g. 'dashicons-chart-pie'. Pass 'none' to leave div.wp-menu-image empty so an icon can be added via CSS. Defaults to use the posts icon.
$capability_type
( string ) required – The string to use to build the read, edit, and delete capabilities. May be passed as an array to allow for alternative plurals when using this argument as a base to construct the capabilities, e.g. array('story', 'stories'). Default 'post'.
$capabilities
( array ) required – Array of capabilities for this post type. $capability_type is used as a base to construct capabilities by default. See get_post_type_capabilities().
$map_meta_cap
( bool ) required – Whether to use the internal default meta capability handling. Default false.
$supports
( array ) required – Core feature(s) the post type supports. Serves as an alias for calling add_post_type_support() directly. Core features include 'title', 'editor', 'comments', 'revisions', 'trackbacks', 'author', 'excerpt', 'page-attributes', 'thumbnail', 'custom-fields', and 'post-formats'. Additionally, the 'revisions' feature dictates whether the post type will store revisions, and the 'comments' feature dictates whether the comments count will show on the edit screen. Defaults is an array containing 'title' and 'editor'.
$register_meta_box_cb
( callable ) required – Provide a callback function that sets up the meta boxes for the edit form. Do remove_meta_box() and add_meta_box() calls in the callback. Default null.
$taxonomies
( array ) required – An array of taxonomy identifiers that will be registered for the post type. Taxonomies can be registered later with register_taxonomy() or register_taxonomy_for_object_type(). Default empty array.
$has_archive
( bool|string ) required – Whether there should be post type archives, or if a string, the archive slug to use. Will generate the proper rewrite rules if $rewrite is enabled. Default false.
$rewrite
( bool|array ) required – { Triggers the handling of rewrites for this post type. To prevent rewrite, set to false. Defaults to true, using $post_type as slug. To specify rewrite rules, an array can be passed with any of these keys:
$slug
( string ) required – Customize the permastruct slug. Defaults to $post_type key.
$with_front
( bool ) required – Whether the permastruct should be prepended with WP_Rewrite::$front. Default true.
$feeds
( bool ) required – Whether the feed permastruct should be built for this post type. Default is value of $has_archive.
$pages
( bool ) required – Whether the permastruct should provide for pagination. Default true.
$ep_mask
( const ) required – Endpoint mask to assign. If not specified and permalink_epmask is set, inherits from $permalink_epmask. If not specified and permalink_epmask is not set, defaults to EP_PERMALINK. }
$query_var
( string|bool ) required – Sets the query_var key for this post type. Defaults to $post_type key. If false, a post type cannot be loaded at ?{query_var}={post_slug}. If specified as a string, the query ?{query_var_string}={post_slug} will be valid.
$can_export
( bool ) required – Whether to allow this post type to be exported. Default true.
$delete_with_user
( bool ) required – Whether to delete posts of this type when deleting a user. If true, posts of this type belonging to the user will be moved to trash when then user is deleted. If false, posts of this type belonging to the user will not be trashed or deleted. If not set (the default), posts are trashed if post_type_supports('author'). Otherwise posts are not trashed or deleted. Default null.
$_builtin
( bool ) required – FOR INTERNAL USE ONLY! True if this post type is a native or "built-in" post_type. Default false.
$_edit_link
( string ) required – FOR INTERNAL USE ONLY! URL segment to use for edit link of this post type. Default 'post.php?post=%d'. }

Returns

WP_Post_Type|WP_Error The registered post type object, or an error object.

Source

File name: oik/includes/bw_register.php
Lines:
1 to 13 of 13
function bw_register_post_type( $post_type, $post_type_args ) {
  bw_trace2( null, null, true, BW_TRACE_VERBOSE );
  $post_type_args['public'] = bw_array_get( $post_type_args, 'public', true );
  $post_type_args['query_var'] = bw_array_get( $post_type_args, 'query_var', $post_type );
  $post_type_args['label'] = bw_array_get_dcb( $post_type_args, 'label', $post_type, "bw_ucfirst"  );
  $post_type_args['singular_label'] = bw_array_get_dcb( $post_type_args, 'singular_label', $post_type_args['label'] , "bw_singularize" );
  $post_type_args['labels'] = bw_array_get_dcb( $post_type_args, 'labels', array( 'singular_name' => $post_type_args['singular_label'], 'name' => $post_type_args['label'] ) , "bw_default_labels" );
  $post_type_args['show_in_nav_menus'] = bw_array_get( $post_type_args, 'show_in_nav_menus', false);
  unset( $post_type_args['cap'] ) ;
  // bw_trace2( $post_type_args, "post_type_args");
  $post_type_object = register_post_type( $post_type, $post_type_args );
  //bw_trace2( $post_type_object, 'post_type_object', false, BW_TRACE_VERBOSE );
}
 
 View on GitHub View on Trac

Called by

    Invoked by

      Calls

      1 to 3 of 3
      • bw_array_get() – Return the array[index] or array->index (for an object) or a default value if not set
      • bw_array_get_dcb() – Return the array[index] or build the result by calling $callback, passing the $default as the arg.
      • bw_trace2() – Trace $value to the trace log file if tracing is active

      Call hooks

      Function name: bw_register_post_type
      Plugin ref: oik – oik information kit
      Version: 4.15.3
      Sourcefile: includes/bw_register.php
      File ref: includes/bw_register.php
      Deprecated?: No
      API Letters: B,P,R,T

      Published: February 2, 2018 | Last updated: February 2, 2018

      Information

      Function name: bw_register_post_type
      Plugin ref: oik – oik information kit
      Version: 4.15.3
      Sourcefile: includes/bw_register.php
      File ref: includes/bw_register.php
      Deprecated?: No
      API Letters: B,P,R,T

      Recent plugin updates

      oik-weight-zone-shipping v0.2.13 oik-weight-zone-shipping v0.2.13 has been tested with WooCommerce 10.1.2 and WordPress 6.8.2 ...
      SB Children Block v1.3.0 Upgrade to SB Children Block v1.3.0 for support for PHP 8.3 and PHP 8.4  ...
      oik v4.15.3 Update to oik v4.15.3 for a couple of security fixes. Tested with WordPress 6.8.2 ...
      oik-privacy-policy v1.4.9 Update to oik-privacy-policy v1.4.9 for a security fix. Tested with WordPress 6.8.2 and PHP 8.3 and PHP 8.4 ...
      oik-nivo-slider v1.17.0 oik-nivo-slider v1.17.0 introduces the Nivo slider block - oik-nivo-slider/nivo. ...

      Plugins

      • All Plugins
      • oik base plugin
      • FREE oik plugins
      • WordPress plugins
      • Premium oik plugins

      Themes

      • FREE themes
      • Bespoke themes
      • Premium themes

      Blocks

      • All Blocks
      • Block examples
      • About Blocks

      Shortcodes

      • All Shortcodes
      • Shortcode examples
      • About Shortcodes

      Reference

      • About APIs
      • All APIs
      • All Classes
      • All Files
      • All Hooks

      Support

      • Contact
      • Cookies policy
      • Get API key
      • Privacy
      • Request support
      • Sitemap
      • Stay informed
      • Terms and Conditions
      oik-plugins
      Email: herb@bobbingwide.com

      Weight shipping plugins

      Find out which cart weight shipping plugin you need for your WooCommerce site.
      Which cart weight based plugin do I need?

      Site:  www.oik-plugins.com
      © Copyright oik-plugins 2011-2025. All rights reserved.


      Website designed and developed by Herb Miller of Bobbing Wide
      Proudly powered by WordPress and oik-plugins

      WordPress version: 6.8.3

      Gutenberg version: 21.7.0

      PHP version: 8.2.29