WordPress.org

Make WordPress Core

Ticket #37114: 37114.diff

File 37114.diff, 2.7 KB (added by desrosj, 4 years ago)
  • src/wp-includes/post-template.php

     
    505505        // hentry for hAtom compliance
    506506        $classes[] = 'hentry';
    507507
    508         // All public taxonomies
    509         $taxonomies = get_taxonomies( array( 'public' => true ) );
    510         foreach ( (array) $taxonomies as $taxonomy ) {
    511                 if ( is_object_in_taxonomy( $post->post_type, $taxonomy ) ) {
    512                         foreach ( (array) get_the_terms( $post->ID, $taxonomy ) as $term ) {
    513                                 if ( empty( $term->slug ) ) {
    514                                         continue;
    515                                 }
     508        /**
     509         * Filters the showing of taxonomy term classes.
     510         *
     511         * @since 4.7.0
     512         *
     513         * @param bool $status Default to show taxonomy term classes.
     514         * @param WP_Post $post Post Object.
     515         */
     516        if ( apply_filters( 'get_post_class_taxonomy', true, $post ) ) {
     517                // All public taxonomies with show_term_classes turned on.
     518                $taxonomies = get_taxonomies( array(
     519                        'public' => true,
     520                        'show_term_classes' => true,
     521                ) );
    516522
    517                                 $term_class = sanitize_html_class( $term->slug, $term->term_id );
    518                                 if ( is_numeric( $term_class ) || ! trim( $term_class, '-' ) ) {
    519                                         $term_class = $term->term_id;
    520                                 }
     523                foreach ( (array) $taxonomies as $taxonomy ) {
     524                        if ( is_object_in_taxonomy( $post->post_type, $taxonomy ) ) {
     525                                foreach ( (array) get_the_terms( $post->ID, $taxonomy ) as $term ) {
     526                                        if ( empty( $term->slug ) ) {
     527                                                continue;
     528                                        }
    521529
    522                                 // 'post_tag' uses the 'tag' prefix for backward compatibility.
    523                                 if ( 'post_tag' == $taxonomy ) {
    524                                         $classes[] = 'tag-' . $term_class;
    525                                 } else {
    526                                         $classes[] = sanitize_html_class( $taxonomy . '-' . $term_class, $taxonomy . '-' . $term->term_id );
     530                                        $term_class = sanitize_html_class( $term->slug, $term->term_id );
     531                                        if ( is_numeric( $term_class ) || ! trim( $term_class, '-' ) ) {
     532                                                $term_class = $term->term_id;
     533                                        }
     534
     535                                        // 'post_tag' uses the 'tag' prefix for backward compatibility.
     536                                        if ( 'post_tag' == $taxonomy ) {
     537                                                $classes[] = 'tag-' . $term_class;
     538                                        } else {
     539                                                $classes[] = sanitize_html_class( $taxonomy . '-' . $term_class, $taxonomy . '-' . $term->term_id );
     540                                        }
    527541                                }
    528542                        }
    529543                }
  • src/wp-includes/taxonomy.php

     
    391391                'show_tagcloud'         => null,
    392392                'show_in_quick_edit'    => null,
    393393                'show_admin_column'     => false,
     394                'show_term_classes'     => true,
    394395                'meta_box_cb'           => null,
    395396                'capabilities'          => array(),
    396397                'rewrite'               => true,