is_tag == true ) {
if ( ! isset( $query->query_vars['post_type'] ) || $query->query_vars['post_type'] == 'post' ) {
$query->query_vars['post_type'] = array( 'post', 'page' );
} elseif ( isset( $query->query_vars['post_type'] ) && is_array( $query->query_vars['post_type'] ) && in_array( 'post', $query->query_vars['post_type'] ) ) {
$query->query_vars['post_type'][] = 'page';
}
}
}
/**
* Randomize an array and keep association
*
* @param array $array
*
* @return boolean
*/
public static function random_array( &$array ) {
if ( ! is_array( $array ) || empty( $array ) ) {
return false;
}
$keys = array_keys( $array );
shuffle( $keys );
foreach ( (array) $keys as $key ) {
$new[ $key ] = $array[ $key ];
}
$array = $new;
return true;
}
/**
* Build rel for tag link
*
* @return string
*/
public static function get_rel_attribut() {
global $wp_rewrite;
$rel = ( is_object( $wp_rewrite ) && $wp_rewrite->using_permalinks() ) ? 'tag' : ''; // Tag ?
if ( ! empty( $rel ) ) {
$rel = 'rel="' . $rel . '"'; // Add HTML Tag
}
return $rel;
}
/**
* Format data for output
*
* @param string $html_class
* @param string $format
* @param string $title
* @param string $content
* @param boolean $copyright
* @param string $separator
*
* @return string|array
*/
public static function output_content( $html_class = '', $format = 'list', $title = '', $content = '', $copyright = true, $separator = '' ) {
if ( empty( $content ) ) {
return ''; // return nothing
}
if ( $format == 'array' && is_array( $content ) ) {
return $content; // Return PHP array if format is array
}
if ( is_array( $content ) ) {
switch ( $format ) {
case 'list' :
$output = '
' . "\n\t" . '- ' . implode( "
\n\t- ", $content ) . "
\n
\n";
break;
default :
$output = '' . "\n\t" . implode( "{$separator}\n", $content ) . "
\n";
break;
}
} else {
$content = trim( $content );
switch ( $format ) {
case 'string' :
$output = $content;
break;
case 'list' :
$output = '' . "\n\t" . '- ' . $content . "
\n\t" . "
\n";
break;
default :
$output = '' . "\n\t" . $content . "
\n";
break;
}
}
// Replace false by empty
$title = trim( $title );
if ( strtolower( $title ) == 'false' ) {
$title = '';
}
// Put title if exist
if ( ! empty( $title ) ) {
$title .= "\n\t";
}
if ( $copyright === true ) {
return "\n" . '' . "\n\t" . $title . $output . "\n";
} else {
return "\n\t" . $title . $output . "\n";
}
}
/**
* Remplace marker by dynamic values (use for related tags, current tags and tag cloud)
*
* @param string $element_loop
* @param object $term
* @param string $rel
* @param integer $scale_result
* @param integer $scale_max
* @param integer $scale_min
* @param integer $largest
* @param integer $smallest
* @param string $unit
* @param string $maxcolor
* @param string $mincolor
*
* @return string
*/
public static function format_internal_tag( $element_loop = '', $term = null, $rel = '', $scale_result = 0, $scale_max = null, $scale_min = 0, $largest = 0, $smallest = 0, $unit = '', $maxcolor = '', $mincolor = '' ) {
// Need term object
$element_loop = str_replace( '%tag_link%', esc_url( get_term_link( $term, $term->taxonomy ) ), $element_loop );
$element_loop = str_replace( '%tag_feed%', esc_url( get_term_feed_link( $term->term_id, $term->taxonomy, '' ) ), $element_loop );
$element_loop = str_replace( '%tag_name%', esc_html( $term->name ), $element_loop );
$element_loop = str_replace( '%tag_name_attribute%', esc_html( strip_tags( $term->name ) ), $element_loop );
$element_loop = str_replace( '%tag_id%', $term->term_id, $element_loop );
$element_loop = str_replace( '%tag_count%', (int) $term->count, $element_loop );
// Need rel
$element_loop = str_replace( '%tag_rel%', $rel, $element_loop );
// Need max/min/scale and other :)
if ( $scale_result !== null ) {
$element_loop = str_replace( '%tag_size%', 'font-size:' . self::round( ( $scale_result - $scale_min ) * ( $largest - $smallest ) / ( $scale_max - $scale_min ) + $smallest, 2 ) . $unit . ';', $element_loop );
$element_loop = str_replace( '%tag_color%', 'color:' . self::get_color_by_scale( self::round( ( $scale_result - $scale_min ) * ( 100 ) / ( $scale_max - $scale_min ), 2 ), $mincolor, $maxcolor ) . ';', $element_loop );
$element_loop = str_replace( '%tag_scale%', $scale_result, $element_loop );
}
// External link
$element_loop = str_replace( '%tag_technorati%', self::format_external_tag( 'technorati', $term->name ), $element_loop );
$element_loop = str_replace( '%tag_flickr%', self::format_external_tag( 'flickr', $term->name ), $element_loop );
$element_loop = str_replace( '%tag_delicious%', self::format_external_tag( 'delicious', $term->name ), $element_loop );
return $element_loop;
}
/**
* This is pretty filthy. Doing math in hex is much too weird. It's more likely to work, this way!
* Provided from UTW. Thanks.
*
* @param integer $scale_color
* @param string $min_color
* @param string $max_color
*
* @return string
*/
public static function get_color_by_scale( $scale_color, $min_color, $max_color ) {
$scale_color = $scale_color / 100;
$minr = hexdec( substr( $min_color, 1, 2 ) );
$ming = hexdec( substr( $min_color, 3, 2 ) );
$minb = hexdec( substr( $min_color, 5, 2 ) );
$maxr = hexdec( substr( $max_color, 1, 2 ) );
$maxg = hexdec( substr( $max_color, 3, 2 ) );
$maxb = hexdec( substr( $max_color, 5, 2 ) );
$r = dechex( intval( ( ( $maxr - $minr ) * $scale_color ) + $minr ) );
$g = dechex( intval( ( ( $maxg - $ming ) * $scale_color ) + $ming ) );
$b = dechex( intval( ( ( $maxb - $minb ) * $scale_color ) + $minb ) );
if ( strlen( $r ) == 1 ) {
$r = '0' . $r;
}
if ( strlen( $g ) == 1 ) {
$g = '0' . $g;
}
if ( strlen( $b ) == 1 ) {
$b = '0' . $b;
}
return '#' . $r . $g . $b;
}
/**
* Extend the round PHP public static function for force a dot for all locales instead the comma.
*
* @param string $value
* @param string $approximation
*
* @return void
* @author Amaury Balmer
*/
public static function round( $value, $approximation ) {
$value = round( $value, $approximation );
$value = str_replace( ',', '.', $value ); // Fixes locale comma
$value = str_replace( ' ', '', $value ); // No space
return $value;
}
/**
* Format nice URL depending service
*
* @param string $type
* @param string $tag_name
*
* @return string
*/
public static function format_external_tag( $type = '', $term_name = '' ) {
if ( empty( $term_name ) ) {
return '';
}
$term_name = esc_html( $term_name );
switch ( $type ) {
case 'technorati':
return '' . $term_name . '';
break;
case 'flickr':
return '' . $term_name . '';
break;
case 'delicious':
return '' . $term_name . '';
break;
default:
return '';
break;
}
}
}