wordpress shortcode_atts using default value instead of passed value code example

Example: shortcode_atts wordpress

The pairs should be considered to be all of the attributes
which are supported by the caller and given as a list. The
returned attributes will only contain the attributes in the $pairs list.

If the $atts list has unsupported attributes, then they will be ignored
and removed from the final returned list.

<?php 
function shortcode_atts( $pairs, $atts, $shortcode = '' ) {
    $atts = (array) $atts;
    $out  = array();
    foreach ( $pairs as $name => $default ) {
        if ( array_key_exists( $name, $atts ) ) {
            $out[ $name ] = $atts[ $name ];
        } else {
            $out[ $name ] = $default;
        }
    }
 
    if ( $shortcode ) {
        /**
         * Filters shortcode attributes.
         *
         * If the third parameter of the shortcode_atts() function is present then this filter is available.
         * The third parameter, $shortcode, is the name of the shortcode.
         *
         * @since 3.6.0
         * @since 4.4.0 Added the `$shortcode` parameter.
         *
         * @param array  $out       The output array of shortcode attributes.
         * @param array  $pairs     The supported attributes and their defaults.
         * @param array  $atts      The user defined shortcode attributes.
         * @param string $shortcode The shortcode name.
         */
        $out = apply_filters( "shortcode_atts_{$shortcode}", $out, $pairs, $atts, $shortcode );
    }
 
    return $out;
}

?>

Tags:

Php Example