When you are posting your blog, you may want to deploy categories and tags to keep things searchable and organized. Categories are larger divisions of your blog (think chapters of a book). Tags are more like index topics or subcategories. My personal best practice advice for developing these divisions is to write your blog. Once you have 3-5 articles that mention or are about the same topic, that becomes a tag. Once a group of 3-5 tags are related, it may be time to add categories.

WordPress makes adding categories to your blog posts easy by offering you a checklist to choose from based upon your categories entered. Tags are a bit more complicated. The native WordPress editor has a blank where you fill in the tags which you want to use with commas in between them. The challenge here is that if you misspell or create duplicate tags that are synonyms, you can make a bit of a mess. Don’t worry! I have you covered. With a simple tweek found here, you can update your functions.php to empower the tags to be entered as checkboxes too! Thanks, rudrastyh.com!

In case rudrastyh.com decides to remove this post, I am adding their code below for reference. Feel free to use it at your own risk.

</pre><pre class="php">/*
 * Meta Box Removal
 */
function rudr_post_tags_meta_box_remove() {
	$id = 'tagsdiv-post_tag'; // you can find it in a page source code (Ctrl+U)
	$post_type = 'post'; // remove only from post edit screen
	$position = 'side';
	remove_meta_box( $id, $post_type, $position );
}
add_action( 'admin_menu', 'rudr_post_tags_meta_box_remove');</pre><pre class="php">/*
 * Add
 */
function rudr_add_new_tags_metabox(){
	$id = 'rudrtagsdiv-post_tag'; // it should be unique
	$heading = 'Tags'; // meta box heading
	$callback = 'rudr_metabox_content'; // the name of the callback function
	$post_type = 'post';
	$position = 'side';
	$pri = 'default'; // priority, 'default' is good for us
	add_meta_box( $id, $heading, $callback, $post_type, $position, $pri );
}
add_action( 'admin_menu', 'rudr_add_new_tags_metabox');
 
/*
 * Fill
 */
function rudr_metabox_content($post) {  
 
	// get all blog post tags as an array of objects
	$all_tags = get_terms( array('taxonomy' =&gt; 'post_tag', 'hide_empty' =&gt; 0) ); 
 
	// get all tags assigned to a post
	$all_tags_of_post = get_the_terms( $post-&gt;ID, 'post_tag' );  
 
	// create an array of post tags ids
	$ids = array();
	if ( $all_tags_of_post ) {
		foreach ($all_tags_of_post as $tag ) {
			$ids[] = $tag-&gt;term_id;
		}
	}
 
	// HTML
	echo '&lt;div id="taxonomy-post_tag" class="categorydiv"&gt;';
	echo '&lt;input type="hidden" name="tax_input[post_tag][]" value="0" /&gt;';
	echo '&lt;ul&gt;';
	foreach( $all_tags as $tag ){
		// unchecked by default
		$checked = "";
		// if an ID of a tag in the loop is in the array of assigned post tags - then check the checkbox
		if ( in_array( $tag-&gt;term_id, $ids ) ) {
			$checked = " checked='checked'";
		}
		$id = 'post_tag-' . $tag-&gt;term_id;
		echo "&lt;li id='{$id}'&gt;";
		echo "&lt;label&gt;&lt;input type='checkbox' name='tax_input[post_tag][]' id='in-$id'". $checked ." value='$tag-&gt;slug' /&gt; $tag-&gt;name&lt;/label&gt;&lt;br /&gt;";
		echo "&lt;/li&gt;";
	}
	echo '&lt;/ul&gt;&lt;/div&gt;'; // end HTML
}</pre><pre class="php"><br /><br />

If you would like help installing this, don’t hesitate to contact us