Created
January 19, 2016 12:39
-
-
Save cdillon/6a07706bac7a48f66011 to your computer and use it in GitHub Desktop.
Use in place of `get_the_category_list` in your single-wpm-testimonial.php template file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Retrieve category list in either HTML list or custom format. | |
* This is a copy of the native `get_the_category_list` function. | |
* | |
* @global WP_Rewrite $wp_rewrite | |
* | |
* @param string $separator Optional, default is empty string. Separator for between the categories. | |
* @param string $parents Optional. How to display the parents. | |
* @param int|bool $post_id Optional. Post ID to retrieve categories. | |
* @return string | |
*/ | |
function wpmtst_get_the_category_list( $separator = '', $parents = '', $post_id = false ) { | |
global $wp_rewrite; | |
if ( ! is_object_in_taxonomy( get_post_type( $post_id ), 'wpm-testimonial-category' ) ) { | |
return apply_filters( 'wpmtst_the_category', '', $separator, $parents ); | |
} | |
/** | |
* Filter the categories before building the category list. | |
* | |
* @param array $categories An array of the post's categories. | |
* @param int|bool $post_id ID of the post we're retrieving categories for. When `false`, we assume the | |
* current post in the loop. | |
*/ | |
$categories = apply_filters( 'wpmtst_the_category_list', get_the_terms( $post_id, 'wpm-testimonial-category' ), $post_id ); | |
if ( empty( $categories ) ) { | |
return apply_filters( 'wpmtst_the_category', __( 'Uncategorized' ), $separator, $parents ); | |
} | |
$rel = ( is_object( $wp_rewrite ) && $wp_rewrite->using_permalinks() ) ? 'rel="category tag"' : 'rel="category"'; | |
$thelist = ''; | |
if ( '' == $separator ) { | |
$thelist .= '<ul class="post-categories">'; | |
foreach ( $categories as $category ) { | |
$thelist .= "\n\t<li>"; | |
switch ( strtolower( $parents ) ) { | |
case 'multiple': | |
if ( $category->parent ) | |
$thelist .= get_category_parents( $category->parent, true, $separator ); | |
$thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>' . $category->name.'</a></li>'; | |
break; | |
case 'single': | |
$thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>'; | |
if ( $category->parent ) | |
$thelist .= get_category_parents( $category->parent, false, $separator ); | |
$thelist .= $category->name.'</a></li>'; | |
break; | |
case '': | |
default: | |
$thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>' . $category->name.'</a></li>'; | |
} | |
} | |
$thelist .= '</ul>'; | |
} else { | |
$i = 0; | |
foreach ( $categories as $category ) { | |
if ( 0 < $i ) | |
$thelist .= $separator; | |
switch ( strtolower( $parents ) ) { | |
case 'multiple': | |
if ( $category->parent ) | |
$thelist .= get_category_parents( $category->parent, true, $separator ); | |
$thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>' . $category->name.'</a>'; | |
break; | |
case 'single': | |
$thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>'; | |
if ( $category->parent ) | |
$thelist .= get_category_parents( $category->parent, false, $separator ); | |
$thelist .= "$category->name</a>"; | |
break; | |
case '': | |
default: | |
$thelist .= '<a href="' . esc_url( get_category_link( $category->term_id ) ) . '" ' . $rel . '>' . $category->name.'</a>'; | |
} | |
++$i; | |
} | |
} | |
/** | |
* Filter the category or list of categories. | |
* | |
* @param array $thelist List of categories for the current post. | |
* @param string $separator Separator used between the categories. | |
* @param string $parents How to display the category parents. Accepts 'multiple', | |
* 'single', or empty. | |
*/ | |
return apply_filters( 'wpmtst_the_category', $thelist, $separator, $parents ); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment