Plugin Directory


Over 80 advanced, powerful shortcodes for displaying the content of your WordPress website.


  • Added: Create oik_themes shared library [github bobbingwide oik issue 40]
  • Fixed: [bw_domain] should display default domain if not set [github bobbingwide oik issue 38]
  • Fixed: [bw_link /path] link incorrect when domain not set [github bobbingwide oik issue 39]
  • Fixed: [bw_show_googlemap] needs an API key [github bobbingwide oik issue 41]
  • Tested: With WordPress 4.5.3


  • Added: Cater for Git repositories similar to symlinked plugins [github bobbingwide oik issues 11]
  • Added: Honeypot support for [bw_contact_form] [github bobbingwide oik issues 32]
  • Added: oik-honeypot shared library [github bobbingwide oik issues 32]
  • Changed: Add $extras parameter to bw_form() and form() [github bobbingwide oik issue 34]
  • Changed: Alter bw_load_noderef2_flat() to allow it to list attachments [github bobbingwide oik issue 33]
  • Changed: Co-req change for oik-nivo-slider issue 4 [github bobbingwide oik-nivo-slider issue 4]
  • Changed: Whitespace, docblock and some trace levels
  • Changed: [bw_wpadmin] use admin_url if 'domain' not set [github bobbingwide oik issue 29]
  • Fixed: Backslash problem with bw_textarea(); add stripslashes() [github bobbingwide oik issue 35]
  • Fixed: Correct typo of internal [github bobbingwide issues 31]


  • Added: Support for pagination using AJAX with the oik-ajax plugin
  • Changed: Docblock and trace levels
  • Changed: Improved [bw_logo] shortcode for WPMS [github bobbingwide oik issue 27]
  • Fixed: Workaround for atrocious performance of textarea fields in Chrome [github bobbingwide oik issue 26]
  • Tested: With WordPress 4.5


  • Added: Support ajaxified pagination of shortcodes with nested content [github bobbingwide oik issue 22]
  • Added: Support for pagination of multi-value fields [github bobbingwide oik issue 25]
  • Changed: Some trace levels
  • Changed: Support $extra parameter to allow for start=index for ordered lists [github bobbingwide oik issue 21]
  • Changed: Updated some docblocks
  • Fixed: Multi shortcode pagination not working consistently [github bobbingwide oik issue 24]


  • Added: Add some notes about autoload needing to perform runtime compatibility checking
  • Changed: oik_query_libs is a filter not an action
  • Fixed: bw_theme_object_property() should check for $post [github bobbingwide oik issues 19]
  • Tested: With WordPress 4.5-beta3


  • Changed: Change to possibly help with [github bobbingwide oik-shortcodes issues 9]
  • Changed: Some trace calls
  • Changed: Tidied some comments
  • Fixed: Add support for internal ( fragment ) links using [bw_link] [github bobbingwide oik issues 16]
  • Fixed: Improved change for Issue 11 - compare 'new_version' with 'Version'
  • Tested: With WordPress 4.4.2 and WordPress MultiSite

= 3.0.0-beta.1220 * Added: Add 'oik_add_shortcode' filter. Fixes github 8 * Added: Add bw_file_exists() and use in bw_include_once() * Added: Add oik-autoload shared library for autoloading PHP classes. Issue oik-lib 2 * Added: BW_Options_List_Table class to administer serialized data from wp_options. github Issue 12 * Added: Logic to prevent updates to Symlinked plugins. Fixes github 11 - Selectively disable plugin update requests * Changed: Allow bw_codes shortcode to display links to the defined oik-plugins server. * Changed: Better setting of ABSPATH when not already defined Fixes github issue 6 * Changed: Changes to some trace calls * Changed: Create bw_json_decode() API for safer JSON decoding Fixes github issue 5 * Changed: Docblock and comment updates and whitespace removal. * Changed: Update BW_List_Table to reflect improvement to WP_List_Table in WordPress 4.3. Github Issue 4 * Changed: Update French language files. Part of github Issue 9 * Changed: Update comments to reflect WP 4.3 updates applied * Changed: Workaround for stack overflow problem in oik-shortcodes * Changed: _bw_get_posts() no longer passes offset=>0. Fixes 13. Pagination not working in WordPress 4.4. Workaround for #35172. * Fixed: Don't call $funcname if value is not set. Related to github oik-weightcountry-shipping issue 1 * Tested: With WordPress 4.4.

= 3.0.0-alpha.0917 * Added: Add bw_sc_shortcake_compatible() function * Changed: Add trace level to some bw_trace2 calls * Changed: Better integration with shortcake ( shortcode-ui ) plugin * Changed: Caters for changes to labels in WordPress 4.3.0 * Changed: Improve [bw_blockquote] shortcode * Changed: Prefix content and excerpt class name for spans with 'bw_' * Changed: Synchronized shared libraries with oik-bwtrace v2.0.7 * Fixed: Comment out gobang() in bw_link_url()


  • Fixed: Fatal in WPMS due to oik-admin and bobbfunc libraries not being loaded in 'network_admin_menu' action hook


  • Unreleased version.
  • Added: "oik_plugins" library
  • Added: Support Composer packages as libraries
  • Changed: Started deprecating admin/oik-plugins.inc
  • Changed: Support objects being passed to bw_echo() and _bw_c()
  • Changed: Synchronize with oik-libs and oik-bwtrace
  • Changed: admin/oik-admin.inc now uses the "oik_plugins" library
  • Changed: bw_oik_version() now uses 'oik_plugins' library
  • Changed: oik-depends library now v3.0.0
  • Changed: oik_plugins_server_settings now satisfied using "oik_plugins" library
  • Fixed: oik_lib_fallback()


  • Added: oik_lib_set_lib_versions() - prototype code to eventually replace oik_lib_check_libs()
  • Changed: Noted that logic for art_button() moved to bobbcomp.inc
  • Changed: Now uses semantic versioning
  • Changed: bobbfunc library now v3.0.0.
  • Changed: bw_as_array() now delivered as part of the "bobbfunc" library; was in bobbcomp.inc
  • Changed: Other libraries synchronized with: oik-lib, oik-bwtrace and oik-libs
  • Fixed: br() doesn't attempt to translate a null string


  • Fixed: admin needs to oik_require_lib( "bobbforms" ) when neither oik-lib nor oik-bwtrace is activated
  • Tested: With WordPress 4.3-beta4


  • Added: _bw_c() to eventually replace c()
  • Added: oik options "Custom jQuery UI CSS URL", used by [bw_accordion]
  • Changed: More removed from bobbfunc.inc; now in the "bobbfunc" library ( libs/bobbfunc.php )
  • Changed: Moved logic for [bw_abbr], [bw_acronym], [bw_blockquote], [bw] and [bw_cite] to separately loaded source files
  • Changed: Moved some functions from libs/bobbfunc.php
  • Changed: Renamed some functions to prepend bw prefix; e.g. _bw_cite(), _bw_abbr(), _bw_acronym()
  • Changed: Started creating the 'oik-sc-help' shared library
  • Changed: [bw_parent] doesn't display anything when there is no parent
  • Changed: bw_jquery_enqueue_style() calls bw_jquery_enqueue_ui_theme() to enqueue the preferred jQuery UI CSS
  • Tested: Up to 4.3-beta3 including WPMS


  • Added: Now delivers language versions: bb_BB ( bbboing language ), fr_FR ( French, Francais ). Note: i18n incomplete though.
  • Added: Shared library support compatible with oik-lib v0.0.1 and oik-bwtrace v1.28
  • Added: bw_get_field_data()
  • Added: oik implements "oik_query_libs" to list the shared libraries that oik provides.
  • Added: oik_query_libs_query_libs() uses oik_lib_check_libs() - which is provided by oik-lib, the plugin that invokes "oik_query_libs"
  • Changed: Some files moved to the libs folder: bwtrace.php, oik_boot.php (Note: Deprecated files not left behind this time! )
  • Changed: Some functions moved from the 'admin' or 'includes' folders to the shared libraries in the 'libs' folder
  • Changed: Some of the original files now report themselves as being deprecated, then include the shared library file
  • Changed: art_button() logic now in bobbcomp.inc, was in bobbfunc.inc
  • Changed: bwtrace.inc ( deprecated already ) now loads /libs/bwtrace.php
  • Changed: bwtrace_boot.php ( now deprecated ) now loads /libs/bwtrace_boot.php
  • Changed: oik_admin_menu() requires the 'oik-admin' library
  • Changed: oik_admin_notices() loads 'oik-depends' and 'oik-activation' libraries before any other plugin ( priority 9 ) to provide a better implementation of plugin dependency checking
  • Changed: oik_main_init() requires the 'bobbfunc' library
  • Changed: oik_plugin_file_loaded() now uses libs/oik_boot.php with oik_require_lib()
  • Fixed: oik_admin_bar_menu() tests for $node->title before attempting update
  • Tested: Up to 4.3-beta2 including WPMS


  • Changed: Some .inc files deprecated and replaced by .php files: bwtrace.php, oik_boot.php, bwtrace_boot.php
  • Changed: Prototype support for the shortcake (shortcode-UI plugin) 'inner_content' field: hardcoded for bw_geshi, bw_csv, caption and wp_caption
  • Changed: No longer wraps shortcodes in square brackets in the shortcode list editor dialog
  • Changed: Some bw_trace2() calls commented out. Others added.
  • Changed: docblock improvements
  • Added: includes/bwtrace-config.php... failover for when oik-bwtrace is inactive or not present
  • Changed: Rebuilt language files, at long last
  • Changed: Corrected nonce field for [bw_contact_form]
  • Changed: Added $args parameter to itext() to allow the field type to be set using '#type'
  • Changed: Added $extras and $args parameter to textfield
  • Changed: Added $args parameter to bw_textfield()
  • Changed: Added $args parameter to bw_form_field_()
  • Changed: bw_form_field_numeric() now passes $args with '#type' set to $type
  • Changed: bw_load_plugin_textdomain() supports symlinked plugins
  • Changed: now implements 'admin_notices' with priority 9, to load oik_plugin_lazy_activation()


  • Changed: Added esc_url() to workaround in bw_navi_paginate_links(). Security fix.
  • Fixed: bw_build_url() tests the path is not empty before calling unltrim()
  • Changed: bw_retrieve_result() accepts 201 HTTP code as well as 200.


  • Added: Now caters for "noderef" fields for hierarchical post types
  • Added: includes/bw_noderef2.php
  • Changed: Debug code in oik_require(). Attempting to track down a random problem with symlinked plugins
  • Changed: More support for symlinks: bw_logo()
  • Changed: bw_effort_meta_boxes() only creates a meta box for the current post type
  • Changed: bw_navi_paginate_links() to workaround WordPress TRAC #31939
  • Changed: bw_sl() now supports definition lists
  • Fixed: oik_checked_check_for_update() tests if $server_response is an array; it could be garbage


  • Added: Help and syntax for [bw_count]
  • Added: Temporary debug code for shortcake pre and post shortcode expansion actions
  • Added: Temporary debug code in oik_boot.inc to attempt to detect symlinks to missing files
  • Added: [bw_show_googlemap] zoom parameter. Default: 12
  • Changed: Improved support for shortcake UI
  • Changed: [bw_show_googlemap] markers parameter accepts "lat:lng" format for additional markers
  • Fixed: For shortcake, caption content field defined as textarea
  • Fixed: More support for symlinks.
  • Fixed: [bw_show_googlemap] control visibility problem ( GitHub Issue 1 )

= 2.5-alpha.0130 * Added: Action "wp_ajax_do_shortcode" supported by "oik_ajax_do_shortcode" - invokes "oik_add_shortcodes" * Added: oik-shortcake.php 'module' - enable by setting the checkbox on oik options > Buttons * Changed: Commented out some calls to trace APIs * Changed: Some PHPdoc improvements * Changed: [bw_images] and related shortcodes now accept the id parameter as positional * Changed: oik_init() now wrapped in function_exists() test; to cater for weird invocation sequences and symlinked / non-symlinked plugins * Fixed: Better support for symlinks; replaced plugin_dir_url( FILE ) with call to oik_url() * Fixed: Syntax help for [bw_bookmarks] shortcode * Fixed: Syntax help for [gallery] and [caption] WordPress supplied shortcodes * Fixed: [bw_images] and related shortcodes forces post_status to 'inherit' * Fixed: bw_gallery() now wrapped in function_exists(); to cater for other plugins which declare this function * Fixed: titles on [bw_tree] shortcode when shortcodes are expanded


  • Fixed: Version released to wordpress.org


  • Fixed: Changed code to cater for WordPress 4.1 changes to paginate_links(). See TRAC #30831


  • Fixed: Undid the change in bw_get_attached_image() to. Does not access the given post if $post_id is set; uses 'post_parent', as before 2.4-beta.1218
  • Changed: Commented out some bw_trace() calls


  • Changed: Improved performance of plugin update checks.
  • Fixed: Changed bw_get_the_content() and bw_get_the_excerpt() to invoke do_shortcode() directly rather than using apply_filters()
  • Changed: bw_get_attached_image() to access the given ID if $post_id set

= 2.4-alpha.1128 * Changed: Added some debugging logic in bw_skv() to track problems noted in PHP 5.5(.18) * Changed: Improved some more docblock comments for better formatting in the Dynamic API Reference * Changed: [wp] shortcode can now display the current version of WordPress [wp v] and PHP [wp v p] * Fixed: Support title links with expanded shortcode in shortcodes such as [bw_pages] and [bw_related] ( from oik-fields) * Tested: Now tested with PHP 5.5 * Tested: With WordPress 4.1-beta2 and WordPress MultiSite


  • Changed: bw_get_posts() ensures the post_type parameter is set, even when query is for selected IDs
  • Changed: bw_td() and bw_th() will now create empty cells.
  • Changed: bw_nav_tabs() sets the selected tab in $_REQUEST
  • Changed: Some doc block improvements


  • Changed: bw_show_googlemap() now supports multiple Google maps being displayed
  • Changed: Improved BW_List_Table - see WordPress TRAC #30183


  • Added: Class BW_List_Table - based on WP_List_Table class - to be used by extension plugins
  • Added: Support for [bw_follow_me] and related shortcodes to use genericons.
  • Added: genericons v3.2: used when Jetpack is not activated
  • Fixed: bw_get_slug() should not issue notify messages
  • Fixed: Changed bw_get_the_content() to use "get_the_excerpt" instead of "the_content" - needs testing.
  • Changed: Improved more docblocks
  • Added: bw-nav-tab.php to support implementation of tabs on admin pages.
  • Added: List table helper functions
  • Changed: oik.css to support some basic styling of dashicons, genericons and oik's own texticons


  • Changed: Improvements to [bw_table] column titles. bw_format_label() and bw_default_title_arr() call bw_query_field_label()
  • Added: bw_query_field_label() which will get the title for the registered field.
  • Changed: Some more i18n changes.
  • Changed: bw_label_from_key() is now equivalent to bw_titleify()
  • Added: Prototype code for working with WP-API in includes/oik-remote.inc
  • Changed: Improvements to [bw_show_googlemap] for use with oik-user
  • Changed: Improve [bw_logo]. Should not display 'broken image' when no logo image is defined.


  • Changed: oik now implements the "init" action with priority 11. This means "oik_loaded" will be fired after other plugins have registered post types and taxonomies.
  • Changed: Updated readme.txt for official release of v2.3
  • Tested: With WordPress 4.0 and WordPress Multi-Site
  • Changed: Display of field labels is now optional, using #label arg.


  • Added: [api bw_field_function_featured_image()] for format=F
  • Added: [api bw_format_more()] for the inline read more link
  • Added: oik-ids.php to implement optional display of post IDs on admin pages
  • Added: filters to allow other plugins to provide shortcode help and syntax
  • Added: action [hook bw_sc_link] to allow other plugins to define the link to more shortcode help
  • Changed: Added bw_field_function_more() for format=M to display simpler "more" link - not styled as an Artisteer button.
  • Changed: Added bw_query_shorten() and bw_shorten() to allow truncation of long option strings in select fields. Uses '#length' arg.
  • Changed: Commented out more calls to bw_trace2()
  • Changed: For easier CSS styling, [bw_pdf] and [bw_images] set default classes; "bw_pdf" and "bw_images", instead of using "bw_attachments"
  • Changed: Improved some more docblock commments
  • Changed: Logo image can be defined using a post ID
  • Changed: Shortcode syntax help now produces links to the definition of the shortcode and parameters at oik-plugins.com
  • Changed: Removed "more oik help" column from the shortcode help table.
  • Changed: Commented out some unused shortcodes from the default_help table.
  • Changed: Use format=R for a blocked read more link and format=M for an inline read more link.
  • Changed: bw_format_label() supports '#label' option. Set to false when the label and separator are not required.
  • Changed: bw_get_posts() now supports an "id" array with only one element for "post__in" processing. Required for oik-fields [bw_related] by= parameter.
  • Changed: oik custom image link can be defined using a post ID
  • Changed: [hook bw_syntax] now expects two parameters
  • Fixed: Added missing function bw_field_function_anchor() for format=A


  • Added: Option to replace the "Howdy," prefix in admin menu; implements "admin_bar_menu" hook
  • Added: Option to use the logo image as a login logo; implements "login_head" hook
  • Added: Optional parameter $prefix to bw_navi_s2eofn()
  • Added: bw_get_thumbnail_src()
  • Changed: Disable 'wpmem_securify' filter on oik options page to avoid Notify messages
  • Changed: Minor improvement to [bw_count] shortcode
  • Changed: Tidied logic in bw_get_thumbnail()
  • Changed: bw_load_shortcode_suffix() to cater for shortcodes containing hyphens
  • Commented out: Some tracing calls
  • Fixed: Initialise $title_arr in bw_default_title_arr()
  • Fixed: docblock comment for bw_pp_shortcodes()


  • Added: "start to end of count" for paginated shortcode output. e.g. 1 to 30 of 42
  • Changed: table header now formatted usin th
  • Fixed: Null post titles displayed as "Post: id"
  • Changed: bw_sl(), and bw_el() now handle comma separated as well as unordered and ordered list types
  • Changed: added bw_simple_list() to better handle logic to produce "simple" lists of links to posts
  • Fixed: Changed bw_inner_tag() and added bw_inner_tags() to support bw_simple_list()


  • Added: bw_shortcode_event() now invokes "oik_shortcode_result" after shortcode expansion
  • Added: bw_get_posts() now supports queries for multiple post types
  • Added: [bw_navi] shortcode - Simple paginated list
  • Added: oik_navi_shortcode_result() implements "oik_shortcode_result" filter to add pagination
  • Added: oik_navi_shortcode_atts() implements "oik_shortcode_atts" filter to prepare for handling pagination
  • Changed: Commented out some calls to bw_trace2() / bw_backtrace()
  • Changed: More documentation improvements
  • Changed: [bw_link] with no parameters will produce a link to the current post
  • Fixed: Shortcode help for [bw_list] thumbnail= parameter, default: none
  • Fixed: bw_form_field_noderef() now caters for badly stored noderef; stored as serialised post rather than post->ID
  • Fixed: bw_format_list() now displays a post with no title as "Post: id"


  • Changed: [bw_link] shortcode no longer requires http:// prefix when linking to an external site. Prefix internal links with /.
  • Added: Help and syntax help for the WordPress [playlist] shortcode


  • Added: uo= parameter for [bw_list]. Use uo=o for a numbered list.
  • Added: [bw_count] shortcode
  • Fixed: Notify message from bw_build_akismet_query_string() assignment of comment_content
  • Changed: Minor changes to jquery.fancybox-1.3.4.js for problem determination


  • Added: Documented the unexpected gobang() function in deprecated.inc
  • Added: Help description and syntax for Artisteer shortcodes, some of which appear fairly useless!
  • Added: Help description and syntax for WordPress shortcodes: [audio] and [video]
  • Added: Support for custom taxonomies registered as fields not being included in the Fields metabox
  • Added: Virtual field callback function bw_get_shortcode_expands_in_titles()
  • Changed: Improved formatting for custom taxonomy fields
  • Changed: [bw_codes] now displays if the shortcode expands during 'the_title' filter processing
  • Fixed: bw_get_shortcode_function() needs to check for the 'all' event, in addition to 'the_content'


  • Changed: Shortcodes expansion now supports values for current filter, not just 'the_content', 'the_excerpt' and 'the_title'
  • Changed: Expansion of shortcodes in 'the_title' is explicitly catered for with the bw_add_shortcode() $the_title parameter
  • Changed: Some shortcode no longer allowed to expand during 'the_title' processing
  • Changed: Improved some documentation
  • Changed: [oik] shortcode now includes an abbr tag


  • Changed: [bw_contact_form] upgraded for Akismet 3
  • Changed: [bw_contact_form] email includes link to original page
  • Changed: For 'the_content' filter 'oik_do_shortcode' is added with priority 2 - to allow other plugins to introduce shortcodes into the content
  • Fixed: [bw_logo] Add dependency upon 'jquery'
  • Fixed: Text fields call esc_attr() to correctly handle double quotes in content. See itext()
  • Fixed: Titles call esc_attr to correctly handle double quotes. See atitle()
  • Changed: screenshot-10.php for new TinyMCE buttons


  • Tested with WordPress 3.9


  • Tested: With WordPress 3.9-RC1
  • Fixed: oik options > Plugins - Check followed by Upgrade - improved likelihood of update being performed on request
  • Fixed: oik options > Themes - Check followed by Upgrade - improved likelihood of update being performed on request
  • Changed: set timeout on oik_check_for_update() and oik_check_for_theme_update() to 10 seconds.


  • Changed: shortcodes are not registered until we know they're needed
  • Changed: shortcode are now registered in bw_oik_lazy_add_shortcodes() includes/oik-shortcodes.php
  • Changed: oik_box() can now be used in OO code.
  • Changed: [bw_link] accepts href= & link= for a named URL parameter
  • Fixed: changed bw_get_posts() so that nested [bw_images] finds required images during [bw_pages] processing
  • Changed: most functions for oik-bob-bing-wide plugin moved to that plugin.
  • Changed: and some functions deprecated.
  • Note: You will need to upgrade oik-bob-bing-wide to continue to use all of its shortcodes.
  • Changed: oik custom CSS button now a simple text link. [bw_editcss]
  • Changed: AJAX logic now in includes/oik-ajax.php
  • Changed: [bw_power] shortcode now in shortcodes/oik-power.php
  • Added: New filter "oik_shortcode_atts" to allow other plugins to override shortcode $atts. Invoked by bw_shortcode_event()
  • Changed: main plugin file slightly simpler.


  • Changed: [bw_link] accepts URL as default parameter. Alternative to numeric ID. Also through src= or url=
  • Changed: TinyMCE buttons are now styled similarly to WordPress's dashboard icons
  • Changed: Added link= parameter to [bw_tel], [bw_mob] and other telephone related shortcodes


  • Changed: Improved bw_default_labels() for better handling of singular_name
  • Changed: Improved loik, wp, lwp, lwpms and bw_power shortcode logic, used by oik-bob-bing-wide plugin
  • Changed: Improve links produced for the bw_plug shortcode, oik-bob-bing-wide plugin


  • Changed: [bw_cycle] - added fit=1|0 parameter, added prevnext=y parameter, improved syntax help
  • Changed: Follow me shortcodes - to set "bw_follow" class on images
  • Changed: Added $text parmaeter to aname()
  • Added: Syntax help for [paypal]
  • Fixed: Minor error in icheckbox().
  • Changed: Added some more docblock comments to bobbfunc.inc


  • Changed: Improve syntax help for id= parameter. It may be a list of post IDs
  • Changed: Ensure [bw_fields] uses the correct post ID when invoked within [bw_accordion], [bw_tabs], [bw_table] and [bw_pages]
  • Changed: [bw_code] will detect the current shortcode so that it can be used in a text widget to display shortcode syntax
  • Changed: HTML for [bw_plug banner=y|j|p] to support improved styling when displaying a banner
  • Changed: Added syntax help for [bw_wtf]
  • Fixed: Styling problems when a jQuery nivo slider is used in a text widget.


  • Tested: with WordPress 3.8.1.
  • See also: change log below.


  • Added: Custom taxonomies are now registered as fields of type "taxonomy"
  • Fixed: reinstated some logic in [bw_field] shortcode as of oik-fields v1.18.0315
  • Changed: [bw_field] can now be used to display post properties as well as registered fields
  • Fixed: aname() - create an anchor tag for linking within a page


  • Changed: includes/bw_fields.inc now matches the same file in oik-fields
  • Changed: [bw_fields] now checks the version of oik-fields - for bw_theme_field()


  • Added: [bw_pinterest] - follow me on Pinterest
  • Added: [bw_instagram] - follow me on Instagram
  • Changed: [bw_follow_me] will also list Pinterest and Instagram
  • Changed: Improved styling of form fields in WordPress 3.8 admin
  • Changed: bw_textarea_cb_arr() performs the translation of $text parameter using bw_translate()


  • Changed: Messages from [bw_contact_form] can now be styled
  • Added: contact= parameter for [bw_contact_form]
  • Added: Incorporated message related functions from oik-fields [bw_new] shotcode in bw_messages.inc


  • Added: [bw_cycle] shortcode now displays attachments ( images ) by default
  • Added: _bw_tidy_response_xml() to cater for unrecognised HTML entities in XML data.
  • Added: Added default styling for oik-rating stars
  • Changed: bw_tablerow() can now display table head rows, using bw_th()
  • Changed: iselect() now supports string or array format for args['#options']
  • Changed: added bw_metadata_loaded() to assist with tracking action usage
  • Fixed: Fatal error from [bw_contact_form] - cannot find bw_verify_nonce(). Problem introduced in oik version 2.1-alpha.1103; function moved to bobbforms.inc
  • Fixed: Reduced notify messages from bw_build_akismet_query_string()


  • Added: Styling for a field hint ( span.bw_hint )
  • Changed: oik backronym is now "OIK Information Kit"
  • Changed: reduced the amount of styling for oik-bob-bing-wide shortcodes
  • Changed: Extracted blueprint-grid.css from oik.css
  • Deleted: bwlink.css is no longer delivered
  • Fixed: reduced chance of Fatal with duplicated functions in bw_fields.inc, delivered in oik and oik-fields


  • Deleted: Removed prototype logic specifically targetting wp-login.php
  • Changed: Renamed blockquote() to _bw_blockquote()


  • Deprecated: image() and bw_image_link() APIs; use e(retimage()) or alink()
  • Changed: commented out some bw_backtrace() calls
  • Changed: Altered if !defined testing in some (shared) trace files
  • Changed: admin/oik-bwtrace.inc and admin/oik-bwaction.inc no longer delivered ( renamed to .inc_ so they are excluded from API parsing)
  • Changed: Added some phpdoc block commments
  • Changed: oik.css defines the menu image for oik-types
  • Changed: multiple select fields define the number of rows to be displayed using the value of the "#multiple" option
  • Changed: bw_translate() no longer calls translate(), to avoid calls to "gettext" filter
  • Added: bw_is_loaded() - determine if a particular file is loaded.
  • Changed: oik_main_init() now checks for wp-login processing. Invokes "oik_login_only" if so, else "oik_loaded" - THIS IS JUST A PROTOTYPE!


  • Added: bw_get_post_class() for including standard post classes to enhance styling capabilities
  • Added: [bw_cycle] shortcode to simplify implementation of jQuery cycle logic
  • Changed: [bw_login] shortcode extended to allow for protected content only visible to logged-in users
  • Changed: [bw_contact_form] textarea width reduced to 30 characters.
  • Changed: bw_format_skv() - to improve shortcode help display when there is a long list of values
  • Changed: bw_format_meta() support theming of multiple select noderef fields
  • Changed: More i18n changes. e.g. th() invokes bwt() to translate table headings
  • Changed: More phpdoc blocks
  • Changed: bw_update_post_meta() allows for no values
  • Fixed: PayPal buttons not including currency - problem introduced in i18n work
  • Fixed: bw_context() allows context values to be set to false


  • Changed: bw_plug output now wrapped in a span
  • Fixed: Added bw_ucfirst() as part of i18n work


  • Changed: Changed "hint" appending logic in bw_form_field_title() to use deferred translatable text
  • Added: More functions for deferred translatable text: bw_dtt(), bw_get_dtt() and bw_tt()
  • Added: styling for span.bw_hint ( bwlink.css )


  • Fixed: Fatal error in oik options > options. Wrong function name used!


  • Changed: Further work on Internationalization (i18n)
  • Added: _alink() - for translatable links
  • Added: p_() - for non translatable paragraphs
  • Fixed: oik menu icon display in dashboard
  • Added: bw_list_fields() to return a list of registered fields
  • Added: support for displaying plugin banners [bw_plug name=plugin banner=y/j/p]
  • Changed: [bw_code] handles unrecognised shortcodes - by not including the link


  • Fixed: [bw_copyright] and [bw_show_googlemap] - incorrect due to i18n changes in bw_array_get_dcb().
  • Changed: _bw_theme_field_default() will only display non-empty values. Note: 0 is considered empty.
  • Added: bw_translate() function - similar to __() but for oik i18n/l10n


  • Changed: bw_textarea() returns the current value when $value parameter is null
  • Changed: bw_get_email_message() only calls bw_get_email_default() when $message is null
  • Changed: bw_theme_field__title() will now output the title text if the post ID is not available


  • Fixed: [bw_contact_form] email fields were not being replaced correctly. Problem introduced in 2.1-alpha.0718
  • Added: bw_remote_get2() - similar to bw_remote_get() but it DOESN'T json_decode() the result
  • Changed: bw_jquery_src() sets the handle using sanitize_key() to avoid problems with query parms and version
  • Changed: Some more work on i18n


  • Changed: Added inline= parameter to [bw_jquery] shortcode
  • Changed: Added caveat documentation for bw_get_plugin_name()
  • Added: oik_boot.inc will now set ABSPATH if not defined
  • Changed: Started Internationalization (i18n) work
  • Added: first version of Localization l10n for the invented "bbboing" language ( locale "bb_BB" ) - now discovered to be called http://en.wikipedia.org/wiki/Typoglycemia
  • Added: bw_form_field_email()
  • Added: Field title #hint: _bw_form_field_title()


  • Fixed: [bw_table] shortcode no longer dependent upon the oik-fields plugin. Added includes/bw_fields.inc
  • Changed: [bw_pages] and [bw_table] shortcodes now default numberposts=10
  • Changed: Changed [bw_contact_form] logic to allow oik-fields to share the Akismet checking code
  • Changed: Minor documentation improvements, including dummy functions for [bw_table] Syntax, Example and Snippet
  • Changed: oik stylesheets are now enqueued after other stylesheets ( priority=11 )
  • Added: bw_pre_form_field() invokes "oik_pre_form_field" action to allow extender plugins to load their field "form" functions
  • Changed: Improved support for custom category and custom tags. See bw_register_custom_category(), bw_register_custom_tags()


  • Added: Support for "private" custom fields - not visible to end users when displayed in forms or theme ( used by oik-fields )
  • Added: Logic to expand shortcodes in content when used in format=C parameter of bw_pages and related shortcodes.
  • Fixed: HTML was being output in the wrong order when nested shortcodes were being expanded
  • Fixed: Correct post ID used when processing nested posts in shortcode expansion for content and excerpt


  • Changed: bw_get_fullimage() now attempts to load the featured image before choosing an attached image at random
  • Added: bw_get_posts() now supports identification of multiple posts using id= parameter ( or post__in= or p= )
  • Default orderby sort sequence when using "post__in" is "post__in"
  • Fixed: Notify message from oik options > plugins when no plugins are registered
  • Fixed: Added syntax help for read_more= parameter to [bw_pages] shortcode
  • Fixed: Minor API documentation improvements
  • Fixed: Enqueues jquery-ui-1.9.2.custom.css for date form fields

2.0.2 on 27 Oct 2013

  • Added: [bw_cycle] shortcode
  • Added: bw_get_post_class() for including standard post classes to enhance styling capabilities
  • Changed: bw_format_skv() - to improve shortcode help display when there is a long list of values
  • Changed: Add support for displaying multiple select noderef fields
  • Changed: Improve bw_update_post_meta() to allow for no values
  • Changed: Extend [bw_login] shortcode to support protected content which is only visible to logged in users
  • Changed: Alter bw_login_shortcode() to cater for i18n changes
  • Changed: bw_pp_shortcodes() to cater for i18n changes

2.0.1 on 21 Sep 2013

  • Changed: Corrected test for defined constant in bw_jkv()
  • Changed: Renamed bw_admin() to bw_admin_sc() to resolve function naming conflict with the BookingWizz plugin


oik version 2.0 adds 11 shortcodes:

  • [bw_accordion] - Display content using jquery-ui-accordion jQuery
  • [bw_contact_form] - Display a contact form
  • [bw_countdown] - Countdown timer
  • [bw_iframe] - Embed a page in an iframe
  • [bw_jq] - Perform a jQuery method
  • [bw_link] - Display a link to a post
  • [bw_login] - Display the login form
  • [bw_loginout] - Display the Login or Logout link
  • [bw_parent] - Display a link back to the parent page
  • [bw_register] - Display a link to the Registration form
  • [bw_tabs] - Display content in tabbed blocks, using jquery-ui-tabs jQuery

Other changes in version 2.0

  • Many shortcodes have been improved: with new capability supported through new or changed parameter values.
  • Improved support for other plugins
  • Inclusion of common jQuery plugins: used by [bw_jq]
  • Many other technical improvements
  • Improved documentation

For details see below or visit oik plugin


  • Added: packed versions of jquery files: pullquote, target-blank
  • Changed: [bw_jq] now supports src=ID parameter, script= parameter alone AND no parameters
  • Changed: [bw_wtf] improved - better defense against wpautop()
  • Changed: [bw_code] can now be used as a link to the shortcode e.g. [bw_code bw_pages] will produce a "[bw_pages]" link


  • Added: Flexible formatting for the [bw_pages] shortcode using the format= parameter with multiple field choices


  • Changed: Improved logic for oik options > plugins and oik-options > themes to list the programmatically registered plugins and themes
  • Added: Early code to implement "themes_api" and "themes_api_result" filters.


  • Changed: Removed the "avatar" and "alignleft" classes in [bw_pages], [bw_accordion] and [bw_tabs] to improve responsive image sizing in IE9


  • Changed: Remove the 'read more' link from [bw_pages] using the read_more='' parameter
  • Changed: read_more="" also applies to [bw_tabs] and [bw_accordion]
  • Changed: Added some basic responsive CSS for [bw_testimonials] ( oik-testimonials plugin )


  • Added: [bw_list] can be used to list attachments with thumbnail images
  • Fixed: Fixed notify message from oik theme server improvements


  • Added: [bw_jq] src parameter to allow ini posts/pages
  • Added: First version of oik themes automatic update logic
  • Added: oik_register_theme_server()
  • Added: bw_jquery_af() - for jQuery anonymous functions
  • Fixed: bw_countdown() requires bw_jquery.inc at start of function
  • Added: CSS to support responsive [bw_video] shortcode.


  • Added [bw_countdown] shortcode using jQuery countdown
  • Added jQuery countdown version 1.6.1
  • [bw_wtf] shortcode now supports slider effects on hover/click
  • Added $json_options parameter to bw_jkv()


  • Added: oik-user requires bw_user_array() and bw_user_list() - originally in oik-plugins


  • Added: oik options page now calls 'oik_menu_box' filter ( used by oik-user )
  • Changed: When oik-user is activated display of oik-options requires alt=0 parameter
  • Changed: [bw_show_googlemap] supports oik-user
  • Changed: bw_get_option_arr() for backward compatibility alt= parameter overrides user= parameter


  • Added: [bw_contact_form] with Akismet checking and copy email sent to visitor. Also includes nonce checking and unique form IDs
  • Added: atdot=, at= and dot= parameters for email display obfuscation on [bw_mailto] and [bw_email]
  • Added: bw_default_user() and bw_get_current_user_id() APIs for use by oik-user
  • Changed: bw_get_option_arr() to determine how to support user= and alt= parameters if oik-user is active


  • Added: jquery.cycle.all.min.js - Minified jQuery cycle
  • Added: support for multiple selection noderef fields - required by oik-shortcodes
  • Added: atdot= parameter for [bw_email] and [bw_mailto] - converts "name@example.com" to "name at example dot com", or provide your own value
  • Changed: Improved some comments for automatic documentation


  • Changed: bw_get_metakey_array() uses exclude=-1 to allow the current post to be included in the results
  • Changed: Example for the [bw_accordion] shortcode
  • Changed: Example for the [bw_tabs] shortcode
  • Changed: bw_jkv() now uses the JSON_FORCE_OBJECT option in addition to JSON_NUMERIC_CHECK
  • Added: jQuery fancybox-1.3.4 (incl. easing-1.3 and mousewheel-3.0.4), plus images and CSS


  • Added: jquery.cycle.all.js (latest version, but not a packed one).
  • Changed: code for [bw_jq] shortcode will now attempt to find the jQuery script file in plugins it's aware of (prototype version)


  • Added: [bw_link] shortcode


  • Added: Support for the id=nn, parameter for ALL shortcodes listing posts, pages or custom post types
  • Changed: oik version now determined from Template
  • Changed: Allow for blank "date" fields. Needed for oik-batchmove plugin
  • Changed: _bw_missing_shortcodefunc() now returns the message to the page


  • Removed: The oik base plugin no longer delivers child plugins. These are now standalone.
  • Added: oik user options - fields can now be set per user
  • Added: Support for user=id|login|email|nicename parameter on: [bw_address], [bw_geo], [bw_telephone] and related shortcodes
  • Added: [bw_accordion] shortcode - display posts as an accordion
  • Added: [bw_tabs] shortcode - display posts in tab blocks
  • Added: [bw_jq] shortcode - perform a jQuery method.
  • Added: jQuery Flexslider v2.1 ( from Woo Themes )
  • Added: [bw_login], [bw_loginout] and [bw_register] shortcodes
  • Changed: Restructured include files - some shortcode functions moved to shortcodes folder


  • Added: [bw_iframe] shortcode
  • Added: [bw_parent] shortcode
  • Changed: bw_textfield() and bw_emailfield() use current $_REQUEST value if null passed
  • Changed: iselect() identifies the selected item from the key or value


  • Fixed: replaced calls to is_int() with is_numeric() when checking for post_id rather than names
  • Fixed: bw_array_get_dcb() checks the obtained value to be identical to the default before calling the deferred call back function
  • Fixed: bw_load_noderef() sets the post_parent to 0 before calling bw_get_posts()
  • Added: phpdoc comments for some functions
  • Added: bw_json_encode() to support users of oik-nivo-slider with PHP 5.3.2 or less
  • Fixed: bw_jkv() uses bw_json_encode() - to avoid getting Warnings when using PHP 5.3.2 or less


  • Added: bw_wp_error() and includes\bw_error.inc - wrapper to WP_error
  • Added: support for plugin relocation during "pre_current_active_plugins"
  • Added: support for receiving updates and plugin information from diverse plugin repositories (e.g. http://www.oik-plugins.com or http://www.oik-plugins.co.uk )
  • Added: oik_register_plugin_server() to allow a plugin to specify its source repository for updates
  • Added: BW_OIK_PLUGINS_SERVER constant defaults to http://www.oik-plugins.com, if not defined in wp-config.php
  • Added: admin\oik-relocate.inc to perform plugin relocation
  • Changed: bw_thumbnail() and bw_get_thumbnail_size() to improve support for thumbnail image size selection
  • Changed: bw_get_post() - add $atts parameter, allow $post_id to be either the post ID or name
  • Added: Added bw_remote_post() to includes\oik-remote.inc. Used by oik_lazy_altapi_check()
  • Changed: bw_invoke_shortcode() - make $text parameter optional
  • Fixed: Use bw_thumbnail_full() to find the file name for the full size image attachment. No longer relies on $post->guid
  • Changed: Improved some phpdoc comments - part of API documentation
  • Added: bw_emailfield(), iemail() and isubmit()
  • Changed: bw_textfield() and bw_textfield_arr() to support for HTML 5 input field parameters and jQuery validation
  • Added: "oik_admin_menu" action, to allow dependent routines to know when oik has responded to "admin_menu".
  • Added: Support for select fields in admin page lists (oik-fields plugin)
  • Added: apikey support for premium plugins
  • Added: Plugins menu item to define plugin settings ( server and API key ) and perform a manual check for updates
  • Changed: readme.txt
  • Added: bw_load_noderef() now supports multiple post_types
  • Added: noderef meta field supports #optional parameter
  • Added: iradio() and bw_radio() APIs in order to support the jQuery star rating plugin
  • Added: OIK_FORCE_CHECK constant for use during debugging only
  • Changed: ihidden() always produces a hidden input field regardless of the value
  • Added: bw_current_url() - return the current URL
  • Changed: Improved support for multisite requests to an oik plugins server
  • Changed: started decoupling action trace from basic trace functions (oik-bwtrace plugin)
  • Changed: [bw_pages] now supports custom text for "read more" links extracted from the
  • Changed: bw_excerpt() restructured to support shortcode expansion using the "get_the_excerpt" filter
  • Changed: Inclusion of oik.css is now optional.
  • Changed: oik.css should better respect your theme's styling. e.g. Attachment links now have class bw_attachment
  • Changed: Altered generated HTML for a number of shortcodes in line with oik.css changes
  • Changed: bwlink.css is now only enqueued by the oik-bob-bing-wide plugin. Note: A lot of oik.css was moved to bwlink.css
  • Deleted: deprecated; bw_add_ajaxurl(), bw_preload_button_options(), oik_optional_plugins()
  • Fixed: Corrected syntax help for the [div] shortcode
  • Fixed: bw_format_attachment() no longer produces an empty link when no image is required
  • Changed: bw_array_get_dcb() will accept null parameters e.g. [bw_email prefix='' suffix='']
  • Added: Syntax help for quite a few shortcodes where the parameters were previously undocumented: bw_address, bw_email and variations, bw_tel and variations, bw_copyright, bw_qrcode, bw_attachments, bw_pdf, bw_portfolio, bw_codes, sdiv, stag, etag
  • Added: bw_emailfield_arr()
  • Changed: Improved support for shortcode help
  • Changed: bw_validate_torf() now accepts "on" as true
  • Changed: [bw_plug] (activated by oik-bob-bing-wide plugin) supports oik-plugins servers
  • Added: includes/oik-filters.inc providing new functions to replace and restore filters
  • Changed: Wrapped the separator string for bw_telephone in a span, enabling it to be styled using custom CSS.
  • Changed: All child plugins now use version 1.18
  • Fixed: Comments should no longer be assigned to the wrong post. Calls to setup_postdata() eliminated.
  • Added: [bw_list] and [bw_post] now support the thumbnail parameter - default "none"
  • Added: Support for nivo jQuery 3.1 - by allowing the addition of the data-thumb attribute to img tags
  • Added: Support for themes built using Artisteer 4.0
  • Changed: [bw_block] and [bw_eblock] are much simpler for Artisteer 4.0 themes
  • Changed: Removed [wp-1], [wp-2] and [wp-3] shortcodes - they were only used to test ticket #17657


  • Fixed: Fatal error: Call to undefined function oik_require() in oik\admin\oik-header.inc on line 2
  • Added: CSS to disable the background image for links to .pdf files ( selector: div.noicon a )


  • Fixed: New solution for bw_jquery() API broke oik-nivo-slider on admin pages
  • Added: Support for [bw_table] shortcode


  • Added: oik-options - use Google geocoding to find latitude and longitude if not specified
  • Added: oik-fields plugin supports display of custom columns in admin list; currency, numeric, date, select and noderef
  • Added: API - bw_get_active_plugins() - to list active plugins for WordPress OR WordPress Multisite
  • Added: API - bw_get_post() - wrapper to get_posts to load the post identified by ID $post_id AND $post_type
  • Added: API - bw_get_theme() - wrapper to WordPress functions to get the current theme.
  • Added: API - bw_remote_get() - wrapper to wp_remote_get(). Used in geocoding
  • Added: Add support for textarea metadata for custom post types
  • Changed: oik-header now works for child themes of "Twenty Eleven"
  • Changed: oik options - PayPal currencies offered in a select list
  • Changed: oik options - Artisteer versions offered in a select list
  • Changed: [bw_editcss] support for WP 3.4 and above.
  • Changed: API - bw_trace2() supports a 3rd parameter $show_args. Default=true. Slightly easier than using bw_trace()
  • Changed: API - bw_jquery() for oik-nivo-slider when jquery.js is not already included before
  • Changed: API - bw_format_attachment() - default 'n' for block parameter
  • Fixed: API - bw_load_noderef() requires includes/bw_posts.inc
  • Fixed: Renamed quote() to bw_quote() due to function naming conflict
  • Fixed: Fixed more "Notices" messages for the [sediv] shortcode


  • Added: Support for oik-privacy-plugin - new APIs below
  • Added: Support for custom links on images. This change enhances [bw_images] and [nivo] (see the oik-nivo-slider plugin)
  • Added: API - bw_image_get_link() - get the custom link or permalink for an attachment
  • Added: API - bw_textarea_cb_arr() - displays an textarea matched with a checkbox
  • Added: API - bw_recreate_options() - alter the value of "autoload" for a WordPress option fieldd
  • Added: API - bw_term_array() - build a simple ID, title array from an array of $term objects
  • Added: API - bw_datepicker_enqueue_script() - enqueue the jQuery UI datepicker
  • Added: API - includes/oik-menus.inc for nav menu functions
  • Added: API - bw_form_start() - start a WordPress form for options fields
  • Added: API - bw_reset_options() - reset or initialise an options field to "latest" defaults
  • Changed: bw_jquery() - added $windowload parameter for jQuery(window).load (when true) or jQuery(document).ready (when false = default)
  • Changed: bw_tablerow() doesn't produce a row if the $td_array is empty
  • Changed: TinyMCE buttons now default to "on" when first displayed on the oik options > Buttons page
  • Fixed: Dependency checking didn't work in WordPress MultiSite installations.
  • Fixed: Eliminated "Notices" displayed when oik options is first displayed.


  • Added: oik extra shortcode options for shortcodes with alternative values ( alt=1 keyword )
  • Added: shortcode help page - listing all current shortcodes
  • Added: new function to assist in earlier detection of action or filter processing (oik trace actions)
  • Added: support for dependent plugins to indicate the minimum required plugin version
  • Added: link to "Getting started with oik plugins"
  • Added: New functions to set jQuery JSON parms from WordPress options
  • Added: License: and License URI:
  • Changed: Improved styling of admin pages
  • Changed: Improved logic for the shortcodes that support the alt=1 keyword ( [bw_mailto], [bw_contact], [bw_telephone], [bw_mobile], [bw_address], [bw_show_googlemap], [bw_geo], [bw_directions] )
  • Changed: User configurable Google Maps intro text replaces hardcoded version
  • Changed: Improved "usage notes"
  • Changed: Improved display of oik action options page
  • Changed: Improved display of oik trace options page
  • Changed: bw_backtrace() is now a lazy API
  • Changed: Improved logic for producing shortcode examples and snippets, adding support for "oik generated examples"
  • Changed: More help, syntax and example logic for shortcodes including: [bw_bookmarks], [bwtrace]
  • Changed: [paypal] shortcode now accepts the country (default "GB") and currency (default "GBP")
  • Changed: [bw_contact] now uses the microformat for an hCard (span classes are vcard and fn (full name))
  • Changed: API changes to support alt=1 parameter: bw_default_empty_att()
  • Changed: Copyright statement suffix text now overrideable e.g. [bw_copyright suffix="copyright suffix"]
  • Changed: API changes in bobbforms.inc: iarea() - added rows parameter, icheckbox() - returns a value when checkbox is not selected
  • Changed: added more bd-nnn class names for { min-height: nnnpx; } for non Artisteer themes
  • Changed: optional plugins link to their own page on oik-plugins.com
  • Fixed: some of the shortcode help one-liners. Also set def

Requires: 3.9 or higher
Compatible up to: 4.5.4
Last Updated: 4 months ago
Active Installs: 9,000+


3.7 out of 5 stars


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,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
50,2,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
100,1,1 100,1,1