Skip to content

Instantly share code, notes, and snippets.

@hitsujixgit
Last active August 29, 2015 14:05
Show Gist options
  • Save hitsujixgit/ac4b223c482ddb9922d5 to your computer and use it in GitHub Desktop.
Save hitsujixgit/ac4b223c482ddb9922d5 to your computer and use it in GitHub Desktop.
According to widget title, replace its string to image in WordPress.
<?php
// Widgetタイトルを画像に置き換える(タイトル検知版)
if( !function_exists('change_widget_title_to_image') ) {
function change_widget_title_to_image($params) {
// widget-idを、widget名と数字に分ける
if(preg_match('/^(?<name>.+)\-(?<key>\d+)$/', $params[0]['widget_id'], $m)) {
$option_name = 'widget_' . $m['name'];
$widgets = get_option($option_name, array());
$index = intval($m['key']);
if (array_key_exists($index, $widgets)) {
if(array_key_exists('title', $widgets[$index])) {
// widgetのラベル名を入手した
$widget_title = $widgets[$index]['title'];
switch ($widget_title) {
case 'Categories':
$params[0]['before_title'] = $params[0]['before_title'].'<img src="'.get_bloginfo('template_url').'/img/widget_categories_2x.png" width="106" height="20" alt="Categories" /><span style="display:none;">';
$params[0]['after_title'] = '</span>'.$params[0]['after_title'];
break;
case 'Recent Posts':
$params[0]['before_title'] = $params[0]['before_title'].'<img src="'.get_bloginfo('template_url').'/img/widget_recent_posts_2x.png" width="127" height="20" alt="Recent Posts" /><span style="display:none;">';
$params[0]['after_title'] = '</span>'.$params[0]['after_title'];
break;
case 'Search Posts':
$params[0]['before_title'] = $params[0]['before_title'].'<img src="'.get_bloginfo('template_url').'/img/widget_search_posts_2x.png" width="127" height="20" alt="Search Posts" /><span style="display:none;">';
$params[0]['after_title'] = '</span>'.$params[0]['after_title'];
break;
case 'Author':
$params[0]['before_title'] = $params[0]['before_title'].'<img src="'.get_bloginfo('template_url').'/img/widget_author_2x.png" width="78" height="20" alt="Author" /><span style="display:none;">';
$params[0]['after_title'] = '</span>'.$params[0]['after_title'];
break;
case 'Archive':
$params[0]['before_title'] = $params[0]['before_title'].'<img src="'.get_bloginfo('template_url').'/img/widget_archive_2x.png" width="78" height="20" alt="Archive" /><span style="display:none;">';
$params[0]['after_title'] = '</span>'.$params[0]['after_title'];
break;
case 'Main Menu':
$params[0]['before_title'] = $params[0]['before_title'].'<img src="'.get_bloginfo('template_url').'/img/widget_mainmenu_2x.png" width="116" height="20" alt="Main Menu" /><span style="display:none;">';
$params[0]['after_title'] = '</span>'.$params[0]['after_title'];
break;
default:
break;
}
}
}
}
return $params;
}
}
add_filter('dynamic_sidebar_params', 'change_widget_title_to_image');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment