Plugin Directory


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


  • 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 default to '?' for unknown/undocumented shortcodes
  • Fixed: Individual "follow me" shortcodes don't display the link address
  • Fixed: [lxx] shortcodes should not expand in titles (oik-bob-bing-wide plugin)


  • Added: "oik_loaded" actions for lazy initialisation of dependent plugins.
  • Added: AJAX enabled dialog for listing shortcodes, showing syntax and providing further information online
  • Added: CSS support for responsive images
  • Added: Improved support for nested shortcodes being expanded in excerpts
  • Added: [bw_code] shortcode to display help, syntax, example, live example and snippet for a shortcode
  • Added: [bw_codes] table to summarise active shortcodes
  • Added: [bw_power] shortcode for "Proudly powered by WordPress" link to WordPress.org
  • Added: [bw_thumbs] shortcode - shows the thumbnail images as links
  • Added: action and filter logging, an optional addition to tracing (for developers)
  • Added: edit custom CSS button (for developers and designers)
  • Added: files for deprecated functions - but these are TOTALLY lazy
  • Added: help and syntax information for (some) NextGEN and Portfolio slideshow shortcodes
  • Added: help and syntax information for the NextGEN [nggallery] shortcode
  • Added: shortcode quicktag (labelled [] ) with jQuery code shared with the existing TinyMCE buttons
  • Added: shortcodes can now provide: help, syntax, examples, live examples and snippets
  • Added: trace options, trace actions and trace reset buttons
  • Changed: Improved API for form fields
  • Changed: PayPal shortcodes support currency (e.g. 'GBP') and location (e.g. 'GB') parameters
  • Changed: TinyMCE button selection is now part of the oik settings menu
  • Changed: [bw_logo] now includes jQuery code to automatically resize the image when displayed in a text widget in an Artisteer header
  • Changed: [bw_wtf] now prints the raw content of the post
  • Changed: added shortcodes folder where the lazy shortcode logic is implemented
  • Changed: code only needed for admin pages has been made lazy
  • Changed: oik options is now in its own submenu with a dashboard like overview page
  • Changed: restructured to make shortcodes lazy
  • Changed: trace functions are very lazy
  • Fixed: CSS to fix a problem with GoogleMap's images on "responsive" sites
  • Fixed: Changed CSS fix for Artisteer nested blocks; original solution broke hmenus
  • Fixed: edit custom CSS links works on Multisite
  • Fixed: elimination of as many "Notice" messages as possible


  • Added: [bw_attachments] for listing attachments
  • Added: [bw_pdf] for .pdf type attachments
  • Added: [bw_tree] for producing a hierarchical tree of children of a 'page'
  • Added: [bw_posts] for producing a simple list of posts
  • Added: [bw_copyright] for use in footers
  • Added: Introduced support for lazy shortcodes - where the shortcode function is not loaded until it's needed
  • Added: [stag] and [etag] shortcodes to use when using the HTML doesn't seem to work
  • Added: oik-boot.inc and changed oik_path to accept $file parameter
  • Added: [bwtrace] button for easier access to trace reset
  • Changed: better array/object detection in bw_array_get()
  • Changed: added bw_array_get_dcb() where dcb = deferred callback. It only calls the callback function for the default when needed.
  • Changed: default function for bw_array_get_dcb is __() - to allow for i18n
  • Changed: Update Copyright years throughout
  • Changed: alter custom header background image styling so that it does not repeat
  • Changed: oik.css - added some additional styling - early support for responsive blocks
  • Fixed: Fixed problem where shortcode escaping did not work. [[oik]] will now become [oik]
  • Fixed: Added missing shortcode function for [bw_picasa]
  • Fixed: Added missing bw_block_25.inc - even though it may not be correct for Artisteer 2.5


  • Added: oik-bbpress to cater for expanded shortcodes in titles used as text attributes
  • Added: oik-header support for custom header background images with the Twenty Eleven theme
  • Changed: [bw_wtf] now prints the post or page id (only works for the main post, not nested posts)
  • Changed: wrote a brief comment about ticket #17567 and shortcodes with hyphens


  • Added: [bw_blockquote] and [bw_cite} shortcode - to overcome problems with wpautop()
  • Added: cite() function for bw API
  • Changed: Improved default processing for [bw_pages] and [bw_list] when used without parameters in a 'post' or a 'page'
  • Changed: stylesheets enqueued during the 'wp_enqueue_scripts' action hook (change for WP 3.3)


  • Added: extra parameter to alink() to support additional fields in the anchor () tag
  • Added: oik-bp-signup-email - to direct the verification email to the site admin rather than the registrant
  • Added: oik-fields plugin - for [bw_field] (alias [bw_fields]) shortcode - display custom fields within the content
  • Added: oik-header plugin - custom header images for pages or posts
  • Added: oik_path() and oik_require() functions
  • Changed: image/retimage API: title defaults to NULL - so can be omitted
  • Fixed: [bw_pages] if the post_type is page, no longer set post_parent automatically


  • Added: [bw_bookmarks] shortcode - equivalent to the Links widget
  • Added: [bw_list] shortcode - a simple list of links for any post type
  • Added bw_trace2() function - improved (easier to code) wrapper to bw_trace()
  • Changed: custom.css should be embedded after style.css (and other stylesheets. e.g. buddypress stylesheets)
  • Changed add parameters ( me and url) to the "follow me" shortcodes - to set values for 'me' and the social media url
  • Changed: oik-bwtrace. The notes suggest .loh for a the log file extension.
  • Changed: [bw_plug] tries to help with plugin names
  • Fixed: bw_backtrace() first checks if trace is enabled.
  • Fixed: ability to specify a custom image size for [bw_pages] e.g. [bw_pages thumbnail=80] or [bw_pages thumbnail="120x80"]
  • Fixed: more clearly shows where the customCSS file will reside... in the current theme directory


  • Changed: [clear] now expands to two classes: clear and cleared
  • Fixed: reduced more warnings that were produced when WP_DEBUG is set
  • Added: bw_wp_title() - use to return a nice SEO title when WordPress SEO may or may not be activated
  • Added: options to tracing to include or exclude information that can help or hinder problem determination
  • Changed: Default to not showing the address type as Work - hidden by CSS
  • Added: Option to edit the custom CSS file using standard WordPress functions
  • Changed: Custom CSS file now expected to be in the stylesheet directory.
  • Added: Dummy custom CSS file created in stylesheet diretory, if defined but not already present
  • Added: Initial support for selecting custom post types in [bw_pages] shortcode, restricting by category
  • Fixed: [bw_pages] shortcode excludes the current post. Needed to prevent recursion in strange scenarios
  • Changed: update [bw_tides] to reflect changes to the XML in the RSS feed from http://www.tidetimes.org.uk


  • Added: oik-pages plugin for [bw_pages] shortcode to list subpages, optionally within [bw_block]s
  • Added: [bw_block]/[bw_eblock] now supports themes generated with Artisteer 3.1 beta versions ( v3.1.0.44079 and v3.1.0.42580 )
  • Added: option to specify which version of Artisteer was used to generate your theme: 31, 30, 25, or na
  • Added: Basic support for using [bw_block] when NOT using an Artisteer theme
  • Changed: Documentation has been migrated to http://www.oik-plugins.com/oik
  • Changed: some improvements to the bw API
  • Fixed: reduced some warnings that were produced when WP_DEBUG is set
  • Changed: oik-bwtrace changes to aid problem determination after a change has been made
  • Changed: Added support for BuddyPress filter - bp_screens


  • Changed: Lost another fight with SVN :-(


  • Changed: [bw_show_googlemap] now uses V3 of the GoogleMap API so a GoogleMap API key is no longer needed
  • Added: Parameters to [bw_show_googlemap] allowing more than one GoogleMap.
  • Added: [div]/[sdiv], [ediv] and [sediv] shortcodes for <div> tags
  • Added: support for Artisteer art-blockcontent and heading background images
  • Added: [bw_emergency] for Emergency phone number
  • Added: [bw_abbr] for company abbreviation e.g. bw = bobbing wide
  • Fixed: [gpslides] - safer invocation of Slideshow Gallery Pro
  • Fixed: bw_shortcode_event() will only call the shortcode expansion and post processing function if it exists
  • Added: [art] and [lart] shortcodes for Artisteer
  • Added: [bp] and [lbp] shortcodes for BuddyPress
  • Fixed: includes the emergency fix applied to oik version 1.2
  • Added: Styling for [wp], [bp], [drupal] and [art] shortcodes


  • Added: oik-blocks - [bw_block] and [bw_eblock] shortcodes for creating Artisteer style blocks within your content
  • Added: [bw_logo] and [bw_qrcode] shortcodes - to include your logo image and QR code images on your pages.
  • Added: [lbw] shortcode - Links to various Bobbing Wide websites
  • Added: [wp] [wpms] and [drupal] shortcodes - for WordPress, WordPress Multisite and Drupal
  • Added: [lwp] [lwpms] and [ldrupal] shortcodes - links to WordPress.org and Drupal.org


  • Added: Safe shortcode expansion. Shortcode expansion is now sensitive to the current filter.
  • Added: Dummy handling of wp_footer when current_filter() does not return a filter name
  • Added: cacheing of plugin information pulled from WordPress.org
  • Added: [bw_plug] supports multiple plugin names to automatically create a table of different WordPress plugins
  • Added: [bw_plug option='active_plugins'] to list active plugins
  • Added: [OIK] expands to Often Included Key-information
  • Fixed: Problem with missing bw_oik() function
  • Fixed: Renamed "oik-bwtrace" to "oik bwtrace" to allow "oik" to be the plugin that gets activated by default


  • Fixed: Hopefully this contains what should have been in 0.9


  • Added: oik-email-signature to help you generate an email signature

Requires: 3.9 or higher
Compatible up to: 4.2.5
Last Updated: 7 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