[oik] plugins.com

WordPress plugins and themes

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

bw_metadata() – Implement the [bw_fields] shortcode

Description

Implement the [bw_fields] shortcode

Display the chosen fields with labels, separator and field values

Usage

$string = bw_metadata( $atts, $content, $tag );

Parameters

$atts
( array ) optional – shortcode parameters
$content
( string ) optional – not expected
$tag
( string ) optional – shortcode tag when invoked for shortcode expansion

Returns

string formatted metadata

TO DO

resolve quandary – when the field names are specified are we allowed to override the #theme setting? ie. Ignore #theme => false ? Answer: For "taxonomy" type fields the #theme setting may not be defined. BUT these fields have to be specified separately anyway.

TO DO

decide best way to deal with nested usage of this shortcode or multiple usage of this shortcode when the post we're trying to process is different from the main post. This happens when we are combining information from multiple posts into one output. Current solution is to not produce anything, not even 'Not single'

Source

File name: oik-fields/shortcodes/oik-fields.php
Lines:
1 to 76 of 76
function bw_metadata( $atts=null, $content=null, $tag=null ) {
  if ( !function_exists( 'oik_is_shortcode_expansion_necessary') ) {
    return oik_is_shortcode_expansion_necessary;
  }
  if ( !oik_is_shortcode_expansion_necessary() ) {
    return "Not today thank you.";
  }
  $post_id = bw_array_get( $atts, "id", null );
  if ( '.' === $post_id ) {
    $post_id = bw_current_post_id();
  }
  if ( $post_id ) {
    $single = true;
  } else { 
    $post_id = bw_current_post_id();
    if ( $post_id === bw_global_post_id() ) {
      $single = true;
    } else {
      $single = is_single( $post_id );
      
    }   
  }
    
  bw_trace2( null, null, true, BW_TRACE_VERBOSE );
  bw_backtrace( BW_TRACE_VERBOSE );
  if ( $single ) {
    //bw_backtrace();
    //p( "Fields for $post_id "); 
    $name = bw_array_get_from( $atts, "fields,0", NULL );
    if ( null == $name ) {
      $names = bw_get_field_names( $post_id );
      
    } else {
      $name = wp_strip_all_tags( $name, TRUE );
      $names = explode( ",", $name );
      
    }
    if ( count( $names ) ) {
      foreach ( $names as $name ) {
        $theme_it = bw_get_field_data_arg( $name, "#theme", true );
        if ( $theme_it ) {
        
          
/**
           * We have to cater for "taxonomy" fields as well
           */
          $type = bw_query_field_type( $name );
          if ( $type === "taxonomy" ) {
            // bw_custom_column_taxonomy( $name, $post_id );
            bw_format_taxonomy( $name, $post_id );
          } else { 
            //bw_custom_column_post_meta( $column, $post_id );
            
            $post_meta = get_post_meta( $post_id, $name, FALSE );
            bw_trace2( $post_meta, "post_meta", false, BW_TRACE_VERBOSE );
            if ( false == bw_get_field_data_arg( $name, "#theme_null", true ) ) {
              $theme_it = bw_field_has_value( $post_meta, $name );
            }
            
            if ( $theme_it ) {
              
              $customfields = array( $name => $post_meta ); 
              bw_format_meta( $customfields );
            }
          }  
        } else {
          bw_theme_object_property( $post_id, $name, $atts );
        }  
      }
    } else {
      bw_trace2( "Invalid use of $tag. No field names to process for $post_id", null, true, BW_TRACE_WARNING );
    }
  } else {
    //e( "Not single" );
  }
  return( bw_ret() );
}
 
 View on GitHub

Called by

1 to 3 of 3
  • bw_field_function_fields() – Format the fields (format="_")
  • bw_header_image() – Template tag to return the header image for a specific page
  • oik_fields_bw_metadata() – Implement "bw_metadata" action for bw_fields.

Invoked by

    Calls

    1 to 8 of 8
    • bw_array_get() – Return the array[index] or array->index (for an object) or a default value if not set
    • bw_backtrace() – Log a debug_backtrace() to the trace log file if tracing is active
    • bw_field_has_value() – Determine if the field has a value
    • bw_get_field_data_arg() – Return the value from a fields #args array, setting the default if not defined
    • bw_get_field_names() – Return the array of field names for the selected post
    • bw_query_field_type() – Query the field type given the field name
    • bw_ret() – Use bw_ret() to return the contents of $bwecho, leaving the global value as NULL
    • bw_trace2() – Trace $value to the trace log file if tracing is active

    Call hooks

    Function name: bw_metadata
    Plugin ref: oik-fields – custom post type field APIs
    Version: 1.54.3
    Sourcefile: shortcodes/oik-fields.php
    File ref: shortcodes/oik-fields.php
    API type: shortcode
    Deprecated?: No
    API Letters: B,M

    Published: March 14, 2017 | Last updated: December 18, 2017

    Information

    Function name: bw_metadata
    Plugin ref: oik-fields – custom post type field APIs
    Version: 1.54.3
    Sourcefile: shortcodes/oik-fields.php
    File ref: shortcodes/oik-fields.php
    API type: shortcode
    Deprecated?: No
    API Letters: B,M

    Recent plugin updates

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

    Plugins

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

    Themes

    • FREE themes
    • Bespoke themes
    • Premium themes

    Blocks

    • All Blocks
    • Block examples
    • About Blocks

    Shortcodes

    • All Shortcodes
    • Shortcode examples
    • About Shortcodes

    Reference

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

    Support

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

    Weight shipping plugins

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

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


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

    WordPress version: 6.8.3

    Gutenberg version: 21.7.0

    PHP version: 8.2.29