Wednesday, January 27, 2016

Improve Security For Wordpress Sites

Here are few other things you can do to improve the security of your WordPress sites:

Wednesday, October 22, 2014

Walker Function in WordPress menu function(wp nav menu)

Displays a navigation menu created in the Appearance → Menus panel.

Usages


<?php

$defaults = array(
 'theme_location'  => '',
 'menu'            => '',
 'container'       => 'div',
 'container_class' => '',
 'container_id'    => '',
 'menu_class'      => 'menu',
 'menu_id'         => '',
 'echo'            => true,
 'fallback_cb'     => 'wp_page_menu',
 'before'          => '',
 'after'           => '',
 'link_before'     => '',
 'link_after'      => '',
 'items_wrap'      => '<ul id="%1$s" class="%2$s">%3$s</ul>',
 'depth'           => 0,
 'walker'          => ''
);

wp_nav_menu( $defaults );

?>

On the above example there are one option(Walker) in the default array. In this post I will write about the walker menu how to use this option.


<?php

class headerTopFirstMenuWalkerMob extends Walker_Nav_Menu
{
    public function start_lvl( &$output, $depth = 0, $args = array() ) {
  $indent = str_repeat("\t", $depth);
  $output .= "\n$indent<ul class=\"mob_sub_nav\">\n";
 }

 /**
  * Ends the list of after the elements are added.
  *
  * @see Walker::end_lvl()
  *
  * @since 3.0.0
  *
  * @param string $output Passed by reference. Used to append additional content.
  * @param int    $depth  Depth of menu item. Used for padding.
  * @param array  $args   An array of arguments. @see wp_nav_menu()
  */
 public function end_lvl( &$output, $depth = 0, $args = array() ) {
  $indent = str_repeat("\t", $depth);
  $output .= "$indent</ul>\n";
 }

 /**
  * Start the element output.
  *
  * @see Walker::start_el()
  *
  * @since 3.0.0
  *
  * @param string $output Passed by reference. Used to append additional content.
  * @param object $item   Menu item data object.
  * @param int    $depth  Depth of menu item. Used for padding.
  * @param array  $args   An array of arguments. @see wp_nav_menu()
  * @param int    $id     Current item ID.
  */
 public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
  $indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';

  $classes = empty( $item->classes ) ? array() : (array) $item->classes;
  $classes[] = 'menu-item-' . $item->ID;

  /**
   * Filter the CSS class(es) applied to a menu item's <li>.
   *
   * @since 3.0.0
   *
   * @see wp_nav_menu()
   *
   * @param array  $classes The CSS classes that are applied to the menu item's <li>.
   * @param object $item    The current menu item.
   * @param array  $args    An array of wp_nav_menu() arguments.
   */
  $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args ) );
  $class_names = $class_names ? ' class="' . esc_attr( $class_names ) . '"' : '';

  /**
   * Filter the ID applied to a menu item's <li>.
   *
   * @since 3.0.1
   *
   * @see wp_nav_menu()
   *
   * @param string $menu_id The ID that is applied to the menu item's <li>.
   * @param object $item    The current menu item.
   * @param array  $args    An array of wp_nav_menu() arguments.
   */
  $id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->ID, $item, $args );
  $id = $id ? ' id="' . esc_attr( $id ) . '"' : '';

  $output .= $indent . '<li>';

  $atts = array();
  $atts['title']  = ! empty( $item->attr_title ) ? $item->attr_title : '';
  $atts['target'] = ! empty( $item->target )     ? $item->target     : '';
  $atts['rel']    = ! empty( $item->xfn )        ? $item->xfn        : '';
  $atts['href']   = ! empty( $item->url )        ? $item->url        : '';

  /**
   * Filter the HTML attributes applied to a menu item's <a>.
   *
   * @since 3.6.0
   *
   * @see wp_nav_menu()
   *
   * @param array $atts {
   *     The HTML attributes applied to the menu item's <a>, empty strings are ignored.
   *
   *     @type string $title  Title attribute.
   *     @type string $target Target attribute.
   *     @type string $rel    The rel attribute.
   *     @type string $href   The href attribute.
   * }
   * @param object $item The current menu item.
   * @param array  $args An array of wp_nav_menu() arguments.
   */
  $atts = apply_filters( 'nav_menu_link_attributes', $atts, $item, $args );

  $attributes = '';
  foreach ( $atts as $attr => $value ) {
   if ( ! empty( $value ) ) {
    $value = ( 'href' === $attr ) ? esc_url( $value ) : esc_attr( $value );
    $attributes .= ' ' . $attr . '="' . $value . '"';
   }
  }

  $item_output = $args->before;
  $item_output .= '<a'. $attributes .'>';
  /** This filter is documented in wp-includes/post-template.php */
  $item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after;
  $item_output .= '</a>';
  $item_output .= $args->after;

  /**
   * Filter a menu item's starting output.
   *
   * The menu item's starting output only includes $args->before, the opening <a>,
   * the menu item's title, the closing </a>, and $args->after. Currently, there is
   * no filter for modifying the opening and closing <li> for a menu item.
   *
   * @since 3.0.0
   *
   * @see wp_nav_menu()
   *
   * @param string $item_output The menu item's starting HTML output.
   * @param object $item        Menu item data object.
   * @param int    $depth       Depth of menu item. Used for padding.
   * @param array  $args        An array of wp_nav_menu() arguments.
   */
  $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
 }

 /**
  * Ends the element output, if needed.
  *
  * @see Walker::end_el()
  *
  * @since 3.0.0
  *
  * @param string $output Passed by reference. Used to append additional content.
  * @param object $item   Page data object. Not used.
  * @param int    $depth  Depth of page. Not Used.
  * @param array  $args   An array of arguments. @see wp_nav_menu()
  */
 public function end_el( &$output, $item, $depth = 0, $args = array() ) {
  $output .= "</li>\n";
 }

}

Use the bellow code instead of the wp_nav_menu and see the magic. Most important you could change into the walker and give your design or layout as you want.

$defaults = array(
 'theme_location'  => '',
 'menu'            => '',
 'container'       => 'div',
 'container_class' => '',
 'container_id'    => '',
 'menu_class'      => 'menu',
 'menu_id'         => '',
 'echo'            => true,
 'fallback_cb'     => 'wp_page_menu',
 'before'          => '',
 'after'           => '',
 'link_before'     => '',
 'link_after'      => '',
 'items_wrap'      => '<ul id="%1$s" class="%2$s">%3$s</ul>',
 'depth'           => 0,
 'walker'          => new headerTopFirstMenuWalkerMob()  
);

wp_nav_menu( $defaults ); 

?>

Wednesday, March 26, 2014

Change the Wordpress Logo in wp-admin login page

User hook login_head

Example

function custom_login_logo() {
echo '<style type="text/css">
h1 a { background-image: url('/images/cutompath.png') !important; background-size:100% !important;width:100% !important;}

</style>';
}
add_action('login_head', 'custom_login_logo');


Friday, March 21, 2014

New Function in wordpress 3.8 (wp star rating)

Description
____________________________________

Outputs a HTML element with the star rating exposed on a 0-5 scale in half star increments (i.e. 1, 1.5, 2 stars). Optionally, if specified, the number of ratings may also be displayed in the title attribute by passing the $number parameter.

By default, only works in admin screens.

<?php wp_star_rating( $args ); ?>

 $args
    (array) (optional) array of arguments
Default: 0 stars

Example
_______________________________________

<?php
$args = array(
  'rating' => 3.5,
  'type' => 'rating',
  'number' => 1234,
);
wp_star_rating( $args );
?>


In order to use this function on the front end, your template must include the wp-admin/includes/template.php file and enqueue the appropriate dashicons CSS font information. Example CSS: 

@font-face {
font-family: "dashicons";
src: url("../fonts/dashicons.eot");
}

@font-face {
font-family: "dashicons";
src: url(data:application/x-font-woff;charset=utf-8;base64,/* !! Large amount of data removed, see wp-includes/css/dashicons.css for complete data !! */) format("woff"),
url("../fonts/dashicons.ttf") format("truetype"),
url("../fonts/dashicons.svg#dashicons") format("svg");
font-weight: normal;
font-style: normal;
}

.star-rating .star-full:before {
    content: "\f155";
}

.star-rating .star-half:before {
    content: "\f459";
}

.star-rating .star-empty:before {
    content: "\f154";
}

.star-rating .star {
    color: #0074A2;
    display: inline-block;
    font-family: dashicons;
    font-size: 20px;
    font-style: normal;
    font-weight: 400;
    height: 20px;
    line-height: 1;
    text-align: center;
    text-decoration: inherit;
    vertical-align: top;
    width: 20px;
}

Note the font data in the above CSS has been omitted for clarity. This data must be included in working code. Refer to wp-admin/css/dashicons.css

Thursday, March 20, 2014

Adding Payment Method To Order Email In WooCommerce

This is the method I would use since it doesn’t require editing any of WooCommerce e-mail templates, all you have to do is add a few lines of code to your functions.php file.

add_action( 'woocommerce_email_after_order_table', 'iwc_display_payment_method_email_order' );
function iwc_display_payment_method_email_order( $order, $is_administrator_email ) {
    if( $is_administrator_email ) {
        echo '<h3>Payment Method:</h3><p>' . $order->payment_method_title . '</p>';
    }
}

Try removing the if ( $is_admin_email ) { check, and the corresponding }. That if statement was limiting the output to the admin emails only, removing it should add the content to all emails.

Tuesday, March 18, 2014

Levels and Users for WordPress

The WordPress User Levels range from 0 to 10. A User Level 0 (zero) is the lowest possible Level and User Level 10 is the highest Level--meaning User Level 10 has absolute authority (highest permission level). Generally, a given User Level allows the user to edit or modify postings for users that are at a "lower" User Level than themselves. Some User Levels can also add, delete, edit, and change the User Levels of other "lower" Level users. For discussion purposes, all visitors who register and login to a WordPress blog are called users.

The user assigned User Level 10 is the administrative user and is referred to as the admin user in this article. During the WordPress installation process, the install script automatically creates the admin user and assigns User Level 10. Normally, only one user should be permitted the User Level 10 privilege since that Level grants absolute power to control all others.

Tuesday, January 10, 2012

Create custom Wiget

Hello,
For that one follow these steps -

Step 1 - Go in current themes/function.php and search for register_widget register_widget.

Step 2 - Add these lines of code
register_sidebar(array(
'name' => 'Header wiget',
'id' => 'header_wiget',
'before_widget' => '
',
'after_widget' => '
',
'before_title' => '

',
'after_title' => '

',
));

Step 3 - You see your custom wiget in admin of wordpress with name Header Wiget

Step 4 - On what place you want to call your wiget just put these lines

header_wiget is an id which is called in functions.php

Enjoy