KC Settings Data

Standard

Just a quick note to those of you using KC Settings. As of version 2.6.8, all variables in kcSettings class have been merged and set to private. So if you’ve previously used kcSettings::$data, you will need to change your code to use the available method: kcSettings::get_data(). This static method behaves exactly like kc_get_option(), so you can put as many arguments (the array keys) as you like there to get the data you need, for example:

kcSettings::get_data('settings', 'plugin', 'myprefix', 'mysection')

Add HTML Tags in Post and Widget Titles

Standard

In a recent project, I needed to use <span /> tags to add some styles (just color, actually) to post and widget titles. By default — and there’s no hook to disable this — WordPress strips any HTML tags found in post and widget titles. Here’s my solution to this problem. Please keep in mind that I only needed to add <span /> tags, so if you need to add more tags, you should modify the code to fit your needs :) Continue reading

wp_list_pages() for Custom Post Types

Standard

wp_list_pages() is a handy little function for displaying a list of hierarchical post type, and it works with custom post types too. Unfortunately, when used for a custom post type, the list items don’t have the necessary CSS classes for current page item/ancestors. Here’s a quick fix for this particular problem.

function kct_page_css_class( $css_class, $page, $depth, $args ) {
  if ( empty($args['post_type']) || !is_singular($args['post_type']) )
    return $css_class;

  $_current_page = get_queried_object();

  if ( in_array( $page->ID, $_current_page->ancestors ) )
    $css_class[] = 'current_page_ancestor';
  if ( $page->ID == $_current_page->ID )
    $css_class[] = 'current_page_item';
  elseif ( $_current_page && $page->ID == $_current_page->post_parent )
    $css_class[] = 'current_page_parent';

  return $css_class;
}
add_filter( 'page_css_class', 'kct_page_css_class', 10, 4 );