how to create custom category widget in wordpress?

How to create custom category widget in wordpress? OR how to you create custom category widget for my website? It is very easy to create a custom category widget for your own website. It is some simple code that you just copy and your website. So, now we go to create custom widget.

First open your theme folder and open your function.php/theme-function.php file. now copy below code and paste your function.php file. Update your file and go to Widget option you ca see hare a new widget for custom category widget “Categories Custom”. Now this widget use any where in your widget area.

php code for create custom category widget

///////////////////////////////////////////////////////////////////////////////////////
// Register our tweaked Category Archives widget
function myprefix_widgets_init() {
register_widget( ‘WP_Widget_Categories_custom’ );
}
add_action( ‘widgets_init’, ‘myprefix_widgets_init’ );

/**
* Duplicated and tweaked WP core Categories widget class
*/
class WP_Widget_Categories_Custom extends WP_Widget {

function __construct() {
$widget_ops = array( ‘classname’ => ‘widget_categories widget_categories_custom’, ‘description’ => __( “A list of categories, with slightly tweaked output.”, ‘mytextdomain’ ) );
parent::__construct( ‘categories_custom’, __( ‘Categories Custom’, ‘mytextdomain’ ), $widget_ops );
}

function widget( $args, $instance ) {
extract( $args );

$title = apply_filters( ‘widget_title’, empty( $instance[‘title’] ) ? __( ‘Categories Custom’, ‘mytextdomain’ ) : $instance[‘title’], $instance, $this->id_base);

echo $before_widget;
if ( $title )
echo $before_title . $title . $after_title;
?>

<ul>
<?php
// Get the category list, and tweak the output of the markup.
$pattern = ‘#<li([^>]*)><a([^>]*)>(.*?)<\/a>\s*\(([0-9]*)\)\s*<\/li>#i’; // removed ( and )

// $replacement = ‘<li$1><a$2>$3</a><span class=”cat-count”>$4</span>’; // no link on span
// $replacement = ‘<li$1><a$2>$3</a><span class=”cat-count”><a$2>$4</a></span>’; // wrap link in span
$replacement = ‘<li$1><a$2><span class=”cat-name”>$3 </span><span class=”cat-count”>$4 Recipes</span></a>’; // give cat name and count a span, wrap it all in a link

$subject = wp_list_categories( ‘echo=0&orderby=name&exclude=&title_li=&depth=1&show_count=1’ );
echo preg_replace( $pattern, $replacement, $subject );
?>
</ul>
<?php
echo $after_widget;
}

function update( $new_instance, $old_instance ) {
$instance = $old_instance;
$instance[‘title’] = strip_tags( $new_instance[‘title’] );
$instance[‘count’] = 1;
$instance[‘hierarchical’] = 0;
$instance[‘dropdown’] = 0;

return $instance;
}

function form( $instance ) {
//Defaults
$instance = wp_parse_args( (array) $instance, array( ‘title’ => ”) );
$title = esc_attr( $instance[‘title’] );
$count = true;
$hierarchical = false;
$dropdown = false;
?>
<p><label for=”<?php echo $this->get_field_id(‘title’, ‘mytextdomain’ ); ?>”><?php _e( ‘Title:’, ‘mytextdomain’ ); ?></label>
<input class=”widefat” id=”<?php echo $this->get_field_id(‘title’); ?>” name=”<?php echo $this->get_field_name(‘title’); ?>” type=”text” value=”<?php echo $title; ?>” /></p>

<input type=”checkbox” class=”checkbox” id=”<?php echo $this->get_field_id(‘count’); ?>” name=”<?php echo $this->get_field_name(‘count’); ?>”<?php checked( $count ); ?> disabled=”disabled” />
<label for=”<?php echo $this->get_field_id(‘count’); ?>”><?php _e( ‘Show post counts’, ‘mytextdomain’ ); ?></label><br />
<?php
}

}

​Leave a Comment

Comment authors age:




How to use Network Marketing for your Business

how to create custom popular post widget in WordPress