Source View: wp_unique_post_slug_is_bad_hierarchical_slug

To save our bandwidth, we show only a snippet of code around each occurence of the hook. View complete file in SVN (without highlighting).

Understanding Source Code

The best way to understand what a hook does is to look at where it occurs in the source code.

  • Action hooks look like this: do_action( "hook_name" )
  • Filter hooks look like this: apply_filters( "hook_name", "what_to_filter" ).

Remember, this hook may occur in more than one file. Moreover, the hook's context may change from version to version.

Source View

Line Code
4193            * Filters whether the post slug would make a bad hierarchical post slug.
4194            *
4195            * @since 3.1.0
4196            *
4197            * @param bool   $bad_slug    Whether the post slug would be bad in a hierarchical post context.
4198            * @param string $slug        The post slug.
4199            * @param string $post_type   Post type.
4200            * @param int    $post_parent Post parent ID.
4201            */
4202           if ( $post_name_check || in_array( $slug, $feeds ) || 'embed' === $slug || preg_match( "@^($wp_rewrite->pagination_base)?\d+$@", $slug ) || apply_filters( 'wp_unique_post_slug_is_bad_hierarchical_slug', false, $slug, $post_type, $post_parent ) ) {
4203                $suffix = 2;
4204                do {
4205                     $alt_post_name   = _truncate_post_slug( $slug, 200 - ( strlen( $suffix ) + 1 ) ) . "-$suffix";
4206                     $post_name_check = $wpdb->get_var( $wpdb->prepare( $check_sql, $alt_post_name, $post_type, $post_ID, $post_parent ) );
4207                     $suffix++;
4208                } while ( $post_name_check );
4209                $slug = $alt_post_name;
4210           }
4211      } else {