Search Over 30,000 FREE Plugins from the Official WordPress Plugin Directory Repository


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

The oik base plugin provides a series of advanced WordPress shortcodes that help you display dynamic content from your website's pages, posts, attachments, links and custom post types. The OIK Information Kit uses lazy smart shortcode technology to display your WordPress website's content including your often included key-information. The functionality in the oik base plugin is used by over 40 other WordPress plugins, providing powerful facilities for an efficient, performant website.

oik now provides over 80 shortcodes including:

  • [bw_pages], [bw_posts], [bw_thumbs], [bw_attachments], [bw_images], [bw_pdf] shortcodes to list subpages, posts, attachments or custom post types
  • [bw_cycle] to display content using jQuery cycle.
  • [bw_list], [bw_tree] to display lists of links to pages, posts, attachments or custom post types
  • [bw_table] to tabulate pages, posts or custom post types
  • [bw_bookmarks] to list links
  • [paypal] shortcodes for PayPal buttons: Pay Now, Buy Now, Donate, Add to Cart, View Cart/Checkout
  • [bw_block] & [bw_eblock], [div] & [ediv], [clear] - to create block structures within your pages, posts and even widgets
  • [bw_button], [bw_contact_button] - to provide call-to-action button style links for Artisteer themes
  • helper shortcodes for web designers and developers: [bw_editcss], [bwtrace], [bw_wpadmin], [bw_wtf], [stag] & [etag]

oik helps you to display information about you, your company, your social networking ids and your website using standard formats that search engines such as Google recognise.

  • You enter your information once, then use oik shortcodes to display it wherever you want; in titles, post and page content, header, sidebar and footer widgets.
  • Whenever you need to change a value you only need to update it in one place; and your website is updated instantly.
  • Shortcodes to display often included key information include: [bw_contact], [bw_telephone], [bw_mobile], [bw_mailto], [bw_company], [bw_address], [bw_show_googlemap], [bw_directions], [bw_logo], [bw_qrcode], [bw_copyright]
  • For your social networking use the [bw_follow_me] shortcode to display your links to Twitter, Facebook, LinkedIn, Google+, etcetera


  • oik provides buttons to help you write the shortcodes, showing you the parameters you can choose and default values
  • oik provides a shortcode discovery page where you can find out about every shortcode which is active in your site
  • lazy programming means that code is only loaded when it's actually needed
  • smart means that the shortcodes can recognise the content in which they're used and adjust their behaviour accordingly
  • oik is extendable - plugin developers can build on the oik base functionality
  • using the oik API: help, syntax information, examples AND HTML snippets can be produced for any plugin or theme that provides shortcodes
  • oik is theme independent; meaning that you can change your theme without having to worry about whether or not the shortcodes will still work.
  • oik uses microformats so that Google and other search engines can understand your content.
Author bobbingwide
Contributors bobbingwide, vsgloik
Tags Accordion, Artisteer, attachments, blocks, bookmarks, buttons, contact form, countdown, cycle, google map, images, jquery, key information, lazy, oik, pagelist, pages, paypal, posts, shortcake, shortcode, shortcodes, sitemap, smart, tabs, Text Widget, trace, tree
  1. oik screenshot 1

    oik options - Options

  2. oik screenshot 2

    Demonstrating [bw_pages] and [bw_thumbs]

  3. oik screenshot 3

    [bw_contact_form] - Contact form and [bw_show_googlemap] - Google Map

  4. oik screenshot 4

    Option to display post IDs on admin pages

  5. oik screenshot 5

    Custom CSS button

  6. oik screenshot 6

    oik button dialog - to create the [bw_button] shortcode

  7. oik screenshot 7

    oik PayPal dialog - create PayPal buttons: Pay Now, Buy Now, Donate, Add to Cart and View Cart/Checkout

  8. oik screenshot 8

    oik shortcodes dialog - showing syntax for [bw_block]

  9. oik screenshot 9

    oik options - Shortcode help - lists ALL active shortcodes

  10. oik screenshot 10

    oik options - Buttons

  1. Upload the contents of the oik plugin to the `/wp-content/plugins/oik' directory
  2. Activate the oik base plugin through the 'Plugins' menu in WordPress
  3. Go to oik options > options to fill in your often included key information
  4. Use the shortcodes when writing your content


  • Fixed: Fatal error: class 'bobbcomp' not found in WPMS Network Admin interface, [github bobbingwide oik issue 60]


  • Changed: Extract plugin and theme update logic into shared libraries,[github bobbingwide oik issue 55]
  • Changed: Improve support for $arg parameter to bw_default_taxonomy_args,[github bobbingwide oik issue 52]
  • Changed: Provide backward compatibility for oik_query_plugins_server()
  • Changed: Re-enable support for PHP 5.2 during startup, [github bobbingwide oik-libs issue 4]
  • Changed: Redevelop bw_replace_filter() and related functions for WordPress 4.7,[github bobbingwide oik issue 58]
  • Changed: Remove the Expiration column from the Plugins and Server tables,[github bobbingwide oik issue 55]
  • Fixed: Custom CSS file changes not taking effect immediately,[github bobbingwide oik issue 54]
  • Fixed: Do not enqueue jQuery when DOING_AJAX,[github bobbingwide oik issue 57]
  • Fixed: Avoid warnings from filemtime().
  • Fixed: Tidy .gitignore.
  • Tested: With WordPress 4.7 and WordPress Multisite
  • Changed: Updates to readme.txt


  • Added: Display memory_limit using [wp] shortcode, [github bobbingwide oik issue 46]
  • Changed: Add follow me support for GitHub, [github bobbingwide oik issue 47]
  • Changed: Attempt to protect against fatal errors,[github bobbingwide oik issue 49]
  • Changed: Blessed task - docblocks
  • Changed: Co-requisite change for oik-sc-help plugin,[github bobbingwide oik-sc-help issue 2
  • Changed: Increase priority for hook 'init' to 20 from 11,[github bobbingwide oik issue 45]
  • Changed: Support for WordPress 4.6,[github bobbingwide oik issue 51]
  • Fixed: Cater for shortcode syntax with parm name aliases,[github bobbingwide oik issue 43]
  • Fixed: Improve messages from deprecated files loaded by PHPUnit, [github bobbingwide oik issue 48]
  • Tested: With WordPress 4.6 and WordPress Multisite


  • 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


  • 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.


  • 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/
  • Changed: Support objects being passed to bw_echo() and _bw_c()
  • Changed: Synchronize with oik-libs and oik-bwtrace
  • Changed: admin/ 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
  • 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
  • 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; 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, was in
  • Changed: ( 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 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 )


  • 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


  • 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


  • 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/
  • 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
  • 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
  • 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


  • 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/ 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


  • 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
  • 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, 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/ and admin/ 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: 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
  • 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/
  • 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 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 "" 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\ - 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. or )
  • Added: oik_register_plugin_server() to allow a plugin to specify its source repository for updates
  • Added: BW_OIK_PLUGINS_SERVER constant defaults to, if not defined in wp-config.php
  • Added: admin\ 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\ 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/ 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\ 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/
  • 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/ 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 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
  • 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
  • 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 m

Where is the FAQ?

oik FAQ

Is there a support forum?

Yes - please use the oik plugin forum

Can I get support?

Yes - see above

Where are the shortcodes documented?

oik shortcodes

The shortcode reference includes the standard WordPress shortcodes and help for shortcodes provided by other oik plugins.

For other popular WordPress plugins (e.g. Jetpack, Easy-Digital-Downloads, WooCommerce) see

Version 3.1.1

Requires WordPress version: 3.9 or higher

Compatible up to: 4.7.2

Last Updated 08 Dec 2016

Date Added: 05 Feb 2011

Plugin Homepage


3.7 stars
3 ratings


Not Enough Data

Works: 0
Broken: 0