WordPress.org

Making WordPress.org

Changeset 595


Ignore:
Timestamp:
05/02/2014 09:58:50 PM (6 years ago)
Author:
coffee2code
Message:

Code Reference: Fix breadcrumb trail for hooks

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/themes/pub/wporg-developer/functions.php

    r591 r595  
    5656    // Temporarily disable comments
    5757    add_filter( 'comments_open', '__return_false' );
     58
     59    add_filter( 'breadcrumb_trail_items',  __NAMESPACE__ . '\\breadcrumb_trail_items', 10, 2 );
     60}
     61
     62/**
     63 * Fix breadcrumb for hooks.
     64 *
     65 * A hook has a parent (the function containing it), which causes the Breadcrumb
     66 * Trail plugin to introduce trail items related to the parent that shouldn't
     67 * be shown.
     68 *
     69 * @param  array $items The breadcrumb trail items
     70 * @param  array $args  Original arg
     71 * @return array
     72 */
     73function breadcrumb_trail_items( $items, $args ) {
     74    $post_type = 'wp-parser-hook';
     75
     76    // Bail early when not the single archive for hook
     77    if ( ! is_singular() || $post_type !== get_post_type() ) {
     78        return $items;
     79    }
     80
     81    $post_type_object = get_post_type_object( $post_type );
     82
     83    // Replaces 'Functions' archive link with 'Hooks' archive link
     84    $items[2] = '<a href="' . get_post_type_archive_link( $post_type ) . '">' . $post_type_object->labels->name . '</a>';
     85    // Replace what the plugin thinks is the parent with the hook name
     86    $items[3] = $items[4];
     87    // Unset the last element since it shifted up in trail hierarchy
     88    unset( $items[4] );
     89
     90    return $items;
    5891}
    5992
Note: See TracChangeset for help on using the changeset viewer.