+91-40 – 420 001 24 info@dhrusya.com

Category filter in wordpress admin for custom taxonomy

function restrict_books_by_assessment() { global $typenow; $post_type = 'assessment'; // change HERE $taxonomy = 'it-assessment'; // change HERE if ($typenow == $post_type) { $selected = isset($_GET[$taxonomy]) ? $_GET[$taxonomy] : ''; $info_taxonomy = get_taxonomy($taxonomy); wp_dropdown_categories(array( 'show_option_all' => __("Show All {$info_taxonomy->label}"), 'taxonomy' => $taxonomy, 'name' => $taxonomy, 'orderby' => 'name', 'selected' => $selected, 'show_count' => true, 'hide_empty' => true, )); }; } add_action('restrict_manage_posts', 'restrict_books_by_assessment'); function convert_id_to_assessment_in_query($query) { global $pagenow; $post_type = 'assessment'; // change HERE $taxonomy = 'it-assessment'; // change HERE $q_vars = &$query->query_vars; if ($pagenow == 'edit.php' && isset($q_vars['post_type']) && $q_vars['post_type'] == $post_type && isset($q_vars[$taxonomy]) && is_numeric($q_vars[$taxonomy]) && $q_vars[$taxonomy] != 0) { $term = get_term_by('id', $q_vars[$taxonomy], $taxonomy); $q_vars[$taxonomy] = $term->slug; } } add_filter('parse_query',...

Creating USB linux drive

Just follow following procedure, >> isohybrid lxle-12045-32.iso it returns following warnings: isohybrid: Warning: more than 1024 cylinders: 1279 isohybrid: Not all BIOSes will be able to boot this device Then  wrote the usb key with: sudo dd if=lxle-12045-32.iso of=/dev/sdb bs=4M...

Joomla development tips and hacks

Add styles and scrtpts to your extension $cssUrl=Juri::base() . ‘components/com_component/assests/style.css’; $jsUrl=Juri::base() . ‘components/com_component/assests/js.js’; $document = JFactory::getDocument(); $document->addStyleSheet($jsUrl); $document->addScript($jsUrl); To display system messages : //Standard message JFactory::getApplication()->enqueueMessage($mymessage); //Notice message JError::raiseNotice(100, $mymessage); //Warning message JError::raiseWarning( 100, $mymessage ); So while programming you need to send a URL variable e.g. ?message=success and in my template/extension file simply made an if statement like this: if($_GET["message"] == "success") { $displaymsg = "My message text.."; JFactory::getApplication()->enqueueMessage($displaymsg); } Send email in Joomla : //mailcode $mailer = JFactory::getMailer(); $config = JFactory::getConfig(); $sender = array( $config->get( ‘mailfrom’ ), $config->get( ‘fromname’ ), $config->get(‘sitename’) ); $mailer->setSender($sender); $mailer->addRecipient($email); $mailer->setSubject(“Subject”); $mailer->setBody($msg); $mailer->isHTML(true); $send = $mailer->Send(); if($send){                                 }...

WordPress meta queries

If you want to get a post with meta key show_on_homepage and meta value on, you can do it in the following way: $rd_args = array( 'meta_key' => 'show_on_homepage', 'meta_value' => 'on' ); $rd_query = new WP_Query($rd_args); If you need to query all posts except the ones with this pair of meta key and value, you can use the following parameters: $rd_args = array( 'meta_key' => 'show_on_homepage', 'meta_value' => 'on', 'meta_compare' => '!=' ); $rd_query = new WP_Query( $rd_args ); Get Posts with a Specific Custom Field Value // the meta_key 'color' with the meta_value 'white' $rd_args = array( 'meta_query' => array( array( 'key' => 'color', 'value' => 'white' ) ) ); $rd_query = new WP_Query( $rd_args ); Get all the posts except the ones with meta key «color» and meta value «white»: $rd_args = array( 'meta_query' => array( array( 'key' => 'color', 'value' => 'white', 'compare' => '!=' ) ) ); $rd_query = new WP_Query( $rd_args ); Get all the posts with white OR green color custom field value: // custom field name is color and custom field value is 'white' OR 'green' $rd_args = array( 'meta_query' => array( array( 'key' => 'color', 'value' => array('white','green'), 'compare' => 'IN' ) ) ); $rd_query = new WP_Query( $rd_args ); Get all the posts (products in online shop for example) except white products and green products: $rd_args = array( 'meta_query' => array( array( 'key' => 'color', 'value' => array('white','green'), 'compare' => 'NOT IN' ) ) ); $rd_query = new WP_Query( $rd_args ); Get Posts Within a Given Range of Numeric Meta Values // the product price is more than 2000...

WordPress Hacks

Here are few wordpres hacks that are very usefull while developing wordpress plugins and themes. Hide wordpress adminbar add_action('init', 'remove_admin_bar'); function remove_admin_bar() { if ( !current_user_can('administrator') && !is_admin()) { show_admin_bar(false); } } Show user/author posts only in admin By default wordpress displays all posts for any user logged into wp-admin. The following code restricts the post list by displaying only his posts. function wps_get_post_list_by_user($clauses) { if (is_admin()) { global $user_ID, $wpdb; // $clauses['join'] = ", wp_posts"; $clauses['where'] .= " AND wp_posts.post_author = ".$user_ID; }; return $clauses; }; if ( !current_user_can( 'edit_users' ) ) { add_filter('posts_clauses', 'wps_get_post_list_by_user'); } Remove unwanted admin menus function remove_admin_menu_items() { $remove_menu_items = array(__('Links'), __('Dashboard'), __('Media'), __('Links'), __('Appearance'), __('Tools'), __('Settings'), __('Comments'), ); global $menu; end ($menu); while (prev($menu)){ $item = explode(' ',$menu[key($menu)][0]); if(in_array($item[0] != NULL?$item[0]:"" , $remove_menu_items)){ unset($menu[key($menu)]);} } } if(get_logged_user_role()!="administrator"){ add_action('admin_menu', 'remove_admin_menu_items'); } Set Post Expert Length function custom_excerpt_length( $length ) { return 100; } add_filter( 'excerpt_length', 'custom_excerpt_length', 999 ); Hide Plugin Update Notifications just copy and paste that code in the .php file of the plugin add_filter('site_transient_update_plugins', 'dd_remove_update_nag'); function dd_remove_update_nag($value) { unset($value->response[ plugin_basename(__FILE__) ]); return $value;...

Working with TinyMCE

You can not enhance the drop down list formatselect. But you can enhance with the hook tiny_mce_before_init the second drop down styleselect, there is hide in a default WordPress install. The documentation list all defaults and possibilities. inline – Name of the inline element to produce for example “span”. The current text selection will be wrapped in this inline element. block – Name of the block element to produce for example “h1″. Existing block elements within the selection gets replaced with the new block element. selector – CSS 3 selector pattern to find elements within the selection by. This can be used to apply classes to specific elements or complex things like odd rows in a table. classes – Space separated list of classes to apply the the selected elements or the new inline/block element. styles – Name/value object with CSS tyle items to apply such as color etc. attributes – Name/value object with attributes to apply to the selected elements or the new inline/block element. exact – Disables the merge similar styles feature when used. This is needed for some CSS inheritance issues such as text-decoration for underline/strikethough. wrapper – State that tells that the current format is a container format for block elements. For example a div wrapper or blockquote. The Style Button Note that, by default, the Style dropdown is hidden in WordPress. At first add the button for custom formats to a menu bar of TinyMCE, in example line 2 with hook mce_buttons_2. add_filter( 'mce_buttons_2', 'fb_mce_editor_buttons' ); function fb_mce_editor_buttons( $buttons ) { array_unshift( $buttons, 'styleselect' ); return $buttons; } The Custom Styles Then enhance the...