Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
09/19/2020 06:19:45 PM (6 years ago)
Author:
dcavins
Message:

Pass extra args to template loading files.

Starting in WordPress 5.5, the template loading
functions will now allow additional arguments to be
passed through to the matched template file using a
new $args parameter.

This changeset passes an extra argument through
the BuddyPress template loading wrapper functions
to the underlying WordPress functions.

Props imath.

Fixes #8350.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-core/bp-core-template-loader.php

    r12546 r12726  
    1919 *
    2020 * @since 1.7.0
     21 * @since 7.0.0 Added $args parameter.
    2122 *
    2223 * @param string      $slug Template part slug. Used to generate filenames,
     
    2425 * @param string|null $name Optional. Template part name. Used to generate
    2526 *                          secondary filenames, eg 'personal' for 'activity-personal.php'.
     27 * @param array       $args Optional. Extra args to pass to locate_template().
    2628 * @return false|string Path to located template. See {@link bp_locate_template()}.
    2729 */
    28 function bp_get_template_part( $slug, $name = null ) {
     30function bp_get_template_part( $slug, $name = null, $args = array() ) {
    2931
    3032        /**
     
    3436         *
    3537         * @since 1.7.0
     38         * @since 7.0.0 Added $args parameter.
    3639         *
    3740         * @param string $slug Template part slug requested.
    3841         * @param string $name Template part name requested.
    39          */
    40         do_action( 'get_template_part_' . $slug, $slug, $name );
     42         * @param array  $args Extra args to pass to locate_template().
     43         */
     44        do_action( 'get_template_part_' . $slug, $slug, $name, $args );
    4145
    4246        // Setup possible parts.
     
    5155         *
    5256         * @since 1.7.0
     57         * @since 7.0.0 Added $args parameter.
    5358         *
    5459         * @param array  $templates Array of templates located.
    5560         * @param string $slug      Template part slug requested.
    5661         * @param string $name      Template part name requested.
    57          */
    58         $templates = apply_filters( 'bp_get_template_part', $templates, $slug, $name );
     62         * @param array  $args      Extra args to pass to locate_template().
     63         */
     64        $templates = apply_filters( 'bp_get_template_part', $templates, $slug, $name, $args );
    5965
    6066        // Return the part that is found.
    61         return bp_locate_template( $templates, true, false );
     67        return bp_locate_template( $templates, true, false, $args );
    6268}
    6369
     
    6975 *
    7076 * @since 2.6.0
     77 * @since 7.0.0 Added $args parameter.
    7178 *
    7279 * @see bp_get_template_part() for full documentation.
     
    7481 * @param string      $slug Template slug.
    7582 * @param string|null $name Template name.
     83 * @param array       $args Optional. Extra args to pass to locate_template().
    7684 * @return false|string
    7785 */
    78 function bp_get_asset_template_part( $slug, $name = null ) {
    79         return bp_get_template_part( "assets/{$slug}", $name );
     86function bp_get_asset_template_part( $slug, $name = null, $args = array() ) {
     87        return bp_get_template_part( "assets/{$slug}", $name, $args );
    8088}
    8189
     
    8896 *
    8997 * @since 1.7.0
     98 * @since 7.0.0 Added $args parameter.
    9099 *
    91100 * @param string|array $template_names Template file(s) to search for, in order.
     
    94103 * @param bool         $require_once   Optional. Whether to require_once or require. Has
    95104 *                                     no effect if $load is false. Default: true.
     105 * @param array        $args           Optional. Extra args to pass to locate_template().
    96106 * @return string The template filename if one is located.
    97107 */
    98 function bp_locate_template( $template_names, $load = false, $require_once = true ) {
     108function bp_locate_template( $template_names, $load = false, $require_once = true, $args = array() ) {
    99109
    100110        // Bail when there are no templates to locate.
     
    141151         * 'bp_get_template_part' or add a new location to the template stack.
    142152         */
    143         do_action( 'bp_locate_template', $located, $template_name, $template_names, $template_locations, $load, $require_once );
     153        do_action( 'bp_locate_template', $located, $template_name, $template_names, $template_locations, $load, $require_once, $args );
    144154
    145155        /**
     
    153163
    154164        if ( $load_template && $load && ! empty( $located ) ) {
    155                 load_template( $located, $require_once );
     165                load_template( $located, $require_once, $args );
    156166        }
    157167
     
    321331 *
    322332 * @since 1.7.0
    323  *
    324  * @see bp_get_template_part() for a description of $slug and $name params.
     333 * @since 7.0.0 Added $args parameter.
     334 *
     335 * @see bp_get_template_part() for a description of $slug, $name and $args params.
    325336 *
    326337 * @param string      $slug See {@link bp_get_template_part()}.
     
    328339 * @param bool        $echo If true, template content will be echoed. If false,
    329340 *                          returned. Default: true.
     341 * @param array       $args See {@link bp_get_template_part()}.
    330342 * @return string|null If $echo, returns the template content.
    331343 */
    332 function bp_buffer_template_part( $slug, $name = null, $echo = true ) {
     344function bp_buffer_template_part( $slug, $name = null, $echo = true, $args = array() ) {
    333345        ob_start();
    334346
     
    336348        remove_filter( 'the_content', 'bp_replace_the_content' );
    337349
    338         bp_get_template_part( $slug, $name );
     350        bp_get_template_part( $slug, $name, $args );
    339351
    340352        // Remove 'bp_replace_the_content' filter to prevent infinite loops.
Note: See TracChangeset for help on using the changeset viewer.