+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...

Show errors in joomla

Sometimes we may be struck with some errors like white screen of death and other errors. Then to know what causing the error simplifies our problem. To enable errors on joomla website do the following. Put the following code at the END of the configuration.php file BEFORE the closing ?> ini_set( ‘display_errors’, true ); error_reporting( E_ALL ); And also you can try following tips too, 1. Check server error logs (not access logs) if you have access to them. (cPanel or other control panels often allow this) 2. Go to Joomla Administration → Global configuration and enable Error Reporting to Maximum, you can also turn on debugging. 3. Check the source of the white page – there might be still some HTML/Errors in the Page Source (Look in your web browser for the “View Source” option) Hope these...