I have been a big fan of the Enfold Multipurpose WordPress Theme developed by Kriesi. I use it for almost every WordPress website that I create for my clients. Also, You may have already noticed; I also advertise the theme on this site.  As the theme is extremely flexible and very well coded, it has become my all time favorite for any WordPress project.

While working on different requirements and features wanted by the clients, I have gathered a good amount of snippets that I often use for the theme. I have listed a few of them below for everyone’s convenience.

 

Thing You Should Follow

  • The codes provided may not work for older versions of the Enfold Theme. The theme has gone through a lot of updates and improved a lot. Just check out the huge list of changelog!
  • It is critical, making sure you are using a child theme over the parent theme (in this case the Enfold Theme) and always should be followed regardless of whatever theme you are using.
  • Use the codes given below on the functions.php file of your child theme.
  • In some cases, there are CSS and HTML codes which you may add on custom.css and to the file you are working.

 

List of Snippets – Jump to the one you like

 

Enable Custom CSS Class Field for Advanced Layout Builder Elements

To be able to customize is the most important aspect of a WordPress theme for me. I fine tune my projects a lot – pixel by pixel if it needs to be. For this task, using Custom CSS Classes helps a lot. Simply add the code given below to enable the field.

add_theme_support('avia_template_builder_custom_css');

 

Disable Layerslider

As much as I like the theme, I wish it had Revolution Slider instead of LayerSlider provided with the theme. I like Revolution Slider more, and as the theme comes with the LayerSlider, I almost always disable it. Here is the code if you feel the same too.

add_theme_support('deactivate_layerslider');

 

Disable Portfolio Custom Post Type

All website don’t need a portfolio section. Similar to the case of LayerSlider, I don’t get to use it most of the time. So, I disable it to keep the dashboard clutter free of unnecessary features. Simply add the code below to turn off the portfolio custom post type on your website running with the Enfold Theme.

add_action( 'after_setup_theme','remove_portfolio_post_type', 100 );
function remove_portfolio_post_type() {   
    remove_action( 'init', 'portfolio_register');    
}

 

Deactivate Backlinks to Kriesi.at on Footer

Sorry Kriesi, but we can not always give credit to the original theme author on our projects (which I feel you deserve for your work). So, if you use Enfold, you will surely notice that the footer contains “© Copyright – [Your Site Name] – Enfold WordPress Theme by Kriesi” on the footer socket area. To disable this, you add the following code

add_filter('kriesi_backlink','remove_backlink');
function remove_backlink(){
  $kriesi_at_backlink = '';
  return $kriesi_at_backlink;
}

 

Enable Enfold’s Avia Layout Builder Debug

This is very useful when you want to use the code built with the layout builder and use it elsewhere, for example on a custom page template. Unlike Visual Composer plugin, the layout builder does not display the generated shortcode when you go back to the classic editor from the Advanced Layout Editor. However, you can do get the shortcodes easily using this snippet. Simply add the code given below to your functions.php file and check the bottom of the pages for the full shortcode generated by the layout builder. Learn more about this snippet here.

add_action('avia_builder_mode', 'builder_set_debug');
function builder_set_debug() {
	return 'debug';
}

 

Enable Advanced Layout Builder for Custom Post Type

I love using the Advanced Layout Builder from Enfold. Its fast, flexible and saves a lot of time. By default it is enabled for pages (right now, it also supports for posts). We can enable it for custom post types as well. Just use the following code on your custom theme’s (or enfold’s) functions.php file. Don’t forget to change “CUSTOM_POST_TYPE” with your custom post type. In the following code I showed for 2 custom post types “CUSTOM_POST_TYPE” &
“CUSTOM_POST_TYPE_2”. You can use one or more as you like.

add_filter( 'avf_builder_boxes', 'enfold_customization_posts_builder' );
function enfold_customization_posts_builder( $b ){
    $b[0]['page'] = array( 'portfolio', 'page', 'post', 'CUSTOM_POST_TYPE', 'CUSTOM_POST_TYPE_2' );
    $b[1]['page'] = array( 'portfolio', 'page', 'post', 'CUSTOM_POST_TYPE', 'CUSTOM_POST_TYPE_2' );
	return $b;
}

 

Breadcrumb filter for Custom Post Type

Customize the breadcrumb for custom post type archive template with the following code. You will need to change the according to your need. [source]

add_filter('avia_breadcrumbs_trail', 'avia_change_breadcrumb', 20, 1);
function avia_change_breadcrumb($trail) {
         if(is_singular('custom post type here'))
         {			
			$home = avia_get_option('frontpage');
			$last = array_pop($trail);
			$page_id = get_option('MY_CUSTOM_POST_TYPE_PAGE');
			$page = '<a href="' . get_permalink($page_id) . '">' . get_the_title($page_id) . '</a>';
			$trail = array(0 => $home, 1 => $page, 'trail_end' => $last);
         }
         return $trail;
}

 

Modify Enfold Theme Post Excerpt Length

To increase the default length of post excerpt (mostly used on post slider, blog archive etc) you can use the following snippet. Increase or decrease the value to fit the need of your desired layout

add_filter('avf_postgrid_excerpt_length','avia_change_excerpt_length',10,1);
function avia_change_excerpt_length() {
    return 250;
}

 

Add Extra Google Fonts to Theme Options

The number of Google Fonts that are available (for use as heading and content area text) on the Theme Options panel is limited. However, you may add the ones you like using the snippet below.

Choose the font you like from Google Fonts website and change the code given below as per your choice of font.

add_filter( 'avf_google_heading_font', 'avia_add_heading_font');
function avia_add_heading_font($fonts) {
  $fonts['PT Sans Narrow'] = 'PT Sans Narrow:400,700';
  $fonts['PT Sans'] = 'PT Sans:400,700,400italic,700italic';
  return $fonts;
}
add_filter( 'avf_google_content_font', 'avia_add_content_font');
function avia_add_content_font($fonts) {
  $fonts['PT Sans'] = 'PT Sans:400,700,400italic,700italic';
  $fonts['PT Sans Narrow'] = 'PT Sans Narrow:400,700';
  return $fonts;
}

 

Use the Magnific Popup Used on Enfold Theme

As Enfold already uses the Magnific Popup plugin for lightbox or modal effects on images and other elements, I think we should be using it too in case we need to get lightbox or modal effect. I use it for inline content, and it looks and works great. I have the codes divided into three sections below. First part is to be added to functions.php file and the CSS to style.css file or custom.css file as you like. The HTML portion of the code is to be added to the template file or page you are going to have the popup, modal or lightbox (whatever you want to call it).

function inline_popup_enabler(){ ?>
    <script>
    (function($){
      $(window).load(function() {
          $('.inline_popup').magnificPopup({
            type:'inline',
            midClick: true 
          });
      });
    })(jQuery);
    </script>
<?php }
add_action('wp_footer', 'inline_popup_enabler');
<a class="inline_popup" data-mfp-src="#contact" href="#">Contact</a>
<div id="contact"  class="white-popup narrow mfp-hide">
/* Anything that you want to display goes here */
</div>
.white-popup {
    position: relative;
    background: #FFF;
    padding: 20px;
    width: auto;
    max-width: 500px;
    margin: 20px auto;
}

 

Extra Footer Section Throughout the Site

It is a trend nowadays to have more than just footer widgets and copyright area. Things like newsletter subscription, call to action, client logos, sponsored links, etc makes its way to the bottom of the website on every page. It is an excellent way to present the essential part of the site to the visitor.

To have a section like that over the footer widgets section, on your website, use the following snippet. You may change the container and other bits to your need and can use any prebuilt layout from the theme. Here we are only hooking some code to an available hook defined in the footer section. You will find much more hooks throughout the theme. You can use “Simply Show Hooks” plugin from the WordPress plugin repository to easily find them.

add_action('ava_before_footer','extra_footer');
    function extra_footer() { ?>
        <div id='extra_footer' class='avia-section main_color avia-section-default avia-no-shadow avia-bg-style-scroll avia-builder-el-32 el_after_av_layout_row avia-builder-el-last  container_wrap fullsize'>
            <div class='container'>
                <!-- Your Content Goes Here -->
            </div>
         </div>
<?php }

 

Using Featured Image as Page Header with Title & Breadcrumb

We can make a page look pretty with a good header image. This can be done with the featured image. Without the featured image set, a normal page looks like this

It looks good but can be better. After adding a featured image to the page we can get the following look

However, I don’t find this look to be the best. Which is why I use the following look for most websites.

Many of you may say, that it is possible to get the look with the help of Avia Page Builder / Advanced Layout Builder. But I think, setting up Color Section, adding image etc is more work than just adding a featured image and getting a great look.

add_action('wp_head', 'custom_code_for_wp_head');
function custom_code_for_wp_head(){ 
	// Only for pages with featured image added and not for single posts
	if(has_post_thumbnail() && !is_single()) { ?>
		<style type="text/css">
			.inner-header-bg, .title_container {
				background-image: url("<?php echo the_post_thumbnail_url( 'full' ); ?>");
			}
			.inner-header-bg, .title_container {
				background-size: cover;
				background-position: center;
				border: none;
			}
			.inner-header-bg h1, .title_container h1.main_title, .title_container .main-title {
				padding: 170px 0 15px 0;
				font-family: 'Open Sans', sans-serif !important;
				font-weight: 300 !important;
				font-size: 40px !important;
				line-height: 40px !important;
				display: block;
			}
			.title_container .breadcrumb {
				right: auto;
				top: auto;
				position: relative;
				margin: 0;
				padding-bottom: 30px;
			}
			h1.main-title.entry-title {
				padding-left: 0;
			}
			.inner-header-bg, .title_container:after {
				content: '';
				display: block;
				height: 100%;
				width: 100%;
				position: absolute;
				background: rgba(0,0,0,.4);top: 0;
			}
			h1.main-title.entry-title a {
				color: #fff !important;
			}
			.title_container .breadcrumb * {
				color: #fff !important;
			}
			/* We need to disable the default page thumbnail */
			.page-thumb { 
			    display: none;
			}
		</style>
	<?php }
} 

Liked the article? Please don't forget to share!