Rewrite Custom Post Type (CPT) Permalinks


add_filter( 'post_type_link', 'wpse16427_post_type_link', 10, 4 );
function wpse16427_post_type_link( $post_link, $post, $leavename, $sample )
{
	if(in_array($post->post_type, array('blog', 'news-article', 'action-funnel', 'bookmark','positon-camp')))
    {
        $authordata = get_userdata( $post->post_author );
        $author = $authordata->user_nicename;
        $post_link = str_replace( '%author%', $author, $post_link );
    }
    return $post_link;
}

How to add custom login and logout links in the wordpress navigation or menu programmatically ?

You can add this code to your active theme’s functions.php file. I would recommend you to use Child theme. The code checks if the user is logged in or not and if the current menu is the primary menu. Then, it adds the appropriate login or logout link to the menu items. The wp_login_url() and wp_logout_url() functions generate the URLs for the login and logout pages respectively. The __() function is used for translation purposes. You can modify the code to match your specific theme and menu requirements.

function add_login_logout_link_to_menu( $items, $args ) {
    if (is_user_logged_in() && $args->theme_location == 'primary') {
        $items .= '<li><a href="'. wp_logout_url() .'">'. __("Logout") .'</a></li>';
    } elseif (!is_user_logged_in() && $args->theme_location == 'primary') {
        $items .= '<li><a href="'. wp_login_url() .'">'. __("Login") .'</a></li>';
    }
    return $items;
}
add_filter( 'wp_nav_menu_items', 'add_login_logout_link_to_menu', 10, 2 );

Toolset Conditionals not working in Divi Theme Builder Latest Version

Most of the users are facing this issue where the Toolset conditionals have suddently stopped working in Divi Builder. There is a technical reason behind it.

So this is how conditionals were used earlier by most of you guys.

OLDER WAY OF USING WPV TOOLSET CONDITIONALS

[wpv-conditional if="( $(wpcf-3d-tour-toolset) ne '' )"]View 3D walkthrough[/wpv-conditional]

LATEST WAY OF USING WPV TOOLSET CONDITIONALS

[wpv-conditional if="( $(wpcf-3d-tour-toolset).item($current_page) ne '' )"] View 3D walkthrough[/wpv-conditional]

The reason why Divi is not supporting the old way is because they are not declaring the current post variable. So in order to fix it, we need this minor alteration to the conditionals.

I hope this is helpful for you. If you need any help in Toolset or WordPress Web Development, you can contact me here.

How can i get only bottom level terms of a taxonomy or category in views?

How can i get only parent terms of a taxonomy ?

This is a very popular question asked in many WordPress forums and Toolset Support and as a result, i am going to write a code snippet.

Lets assume, that the depth of taxonomy hierarchy is 3 and is explained by the following example of countries, provinces and states.

  • Australia ( Parent)
    • Queensland (Child)
      • Brisbane ( Child of a child)

CODE SNIPPED TO FETCH TOP LEVEL OR PARENT TAXONOMY TERM

Copy and paste the below snipped in your current active theme functions.php file. Then replace $location variable to your current taxonomy name and then use the shortcode [ds-parent] inside the loop view of any post type template.

add_shortcode('ds-parent', 'ds_top_level_terms');
function ds_top_level_terms() {
    $locations = 'test';
    $terms = get_the_terms(get_the_ID(), $locations);
    foreach ($terms as $term) {
        $parent = $term->parent;
        if ( $parent == '0' ) {
            $term_link = get_term_link($term, $locations);
            return $term->name;
        }
    }
}

CODE SNIPPED TO FETCH MID LEVEL TAXONOMY TERMS

  • Australia ( Parent)
    • Queensland (Child)
      • Brisbane ( Child of a child)

Here again, replace $location variable to your current taxonomy name and then use the shortcode [ds-middle-terms] inside the loop view of any post type template.

function ds_sort_terms(Array &$cats, Array &$into, $parentId = 0)
{
    foreach ($cats as $i => $cat) {
        if ($cat->parent == $parentId) {
            $into[$cat->term_id] = $cat;
            unset($cats[$i]);
        }
    }
    foreach ($into as $topCat) {
        $topCat->children = array();
        ds_sort_terms($cats, $topCat->children, $topCat->term_id);
    }
}
add_shortcode('ds-middle-terms', 'ds-middle-terms');
function ds-middle-terms( $atts ) {
    extract( shortcode_atts( array(
        'taxonomy' => 'abc'
    ), $atts ) );
  
 
$categories=get_the_terms(get_the_ID(), $taxonomy);

$categoryHierarchy = array();
ds_sort_terms($categories, $categoryHierarchy);
	$amiarray = array_values($categoryHierarchy);
	foreach($amiarray[0]->children as $final){
		return $final->name;
	}    
}

CODE SNIPPED TO GET BOTTOM LEVEL TERMS OF A HIERARCHY

  • Australia ( Parent)
    • Queensland (Child)
      • Brisbane ( Child of a child)

In the same way, replace $location variable to your current taxonomy name and then use the shortcode [ds-bottom-level] inside the loop view of any post type template.

add_shortcode('ds-bottom-level', 'ds_bottom_terms');
function ds_bottom_terms() {
   extract( shortcode_atts( array(
        'taxonomy' => 'abc'
    ), $atts ) );
  
 
$categories=get_the_terms(get_the_ID(), $taxonomy);

$categoryHierarchy = array();
sort_terms_hierarchicaly($categories, $categoryHierarchy);
	$amiarray = array_values($categoryHierarchy);
	
	foreach($amiarray[0]->children as $final){
		foreach($final->children as $finall){
			return $finall->name;
		}
		}
}

Now you can use above shortcodes in a post view loop of Toolset and can only show desired term levels.

If you need further assistance, write me down in the comments section or alternatively, you can contact me through my contact page of the website.

Cheers

Redirect from a primary domain to its subdomain

Redirect from a primary domain to its subdomain

Sometimes we find it really difficult to redirect from a main or primary domain to the subdomain of the same primary domain using .htaccess.

For example if you want to redirect from http://www.lynda.com to http://new.lynda.com

To achieve this, just grab this snippet and paste it in the .htaccess file in the root of your primary domain.

 

RewriteEngine On
Options +FollowSymlinks
RewriteCond %{HTTP_HOST} ^(www\.)?lynda\.com$ [NC]
RewriteRule ^ http://new.lynda.com [R,L]

 

Post your comments below.

 

How to open woocommerce product links in new tab ?

How to open woocommerce product links in new tab ?

Hey there is always a question asked on many wordpress forums that how can we open a woocommerce product link in a new tab so that user can select other products as well rather than going back and forth again and again.

This is not an easy task to do for someone who is a designer and for a beginner wordpress developer or a client.

So i decided to come up with a solution using woocommerce hooks which is a standard way of doing any custom tweaks to woocommerce functionalities. 

Lets get started.

You just need to open your functions.php file and paste the below snippet into it.

I have used woocommerce_template_loop_product_link_open hook to achieve this and added target=”_blank” in the anchor tag which opens a link in new tab.

/* Open Products in New Tab Woocommerce-DevelopingSense */

remove_action( 'woocommerce_before_shop_loop_item','woocommerce_template_loop_product_link_open', 10 );
add_action ( 'woocommerce_before_shop_loop_item', 'ami_function_open_new_tab', 10 );
function ami_function_open_new_tab() {
echo '<a target="_blank" href="' . get_the_permalink() . '" class="woocommerce-LoopProduct-link">';
}

This is a best way to do it rather than using jquery or javascript which bloats a website.

Thanks and if you need any assistance you can contact me here.

WHERE I AM HOSTING MY WEBSITE ? IT IS ON SITEGROUND…CHECK MY REVIEW HERE

Do leave your valuable comments.