113 posts I know Chuck
  • Elite Author: Sold more than $75,000 on Envato Market
  • Has sold $125,000+ on Envato Market
  • Has been part of the Envato Community for over 4 years
  • Sells items exclusively on Envato Market
+5 more
kotofey says

Hi all,

I don’t like to write about mine problems in forum, but not at this time…

Today I’ve got another soft reject. The reason is:

You’ve included some of your JavaScript in header.php which is a bad practice and may lead to some errors.
.

You’ll say ok, but where is a problem? The problem is that I use a wp_enqueue_script () for my scripts. This cusom script (custom.js) have jquery functions for tipsy / nivoslider / prettyPhoto / and so on…

Maybe there is a new wordpress standarts? Or it’s a reviewer’s joke? Or something else? :|

118 posts
  • Has been part of the Envato Community for over 3 years
  • Has referred 50+ members
  • Has collected 10+ items on Envato Market
  • Sells items exclusively on Envato Market
+1 more
ZenThemes says

Yes, it is a standard.

Just make your custom javascript load on wp_footer .

113 posts I know Chuck
  • Elite Author: Sold more than $75,000 on Envato Market
  • Has sold $125,000+ on Envato Market
  • Has been part of the Envato Community for over 4 years
  • Sells items exclusively on Envato Market
+5 more
kotofey says
KiwiStudio said
Yes, it is a standard. Just make your custom javascript load on wp_footer .
I think you don’t understand me.
I use a wp_enqueue_script () for my scripts.
214 posts
  • Has referred 1+ members
  • Has collected 50+ items on Envato Market
  • Has been part of the Envato Community for over 6 years
  • Sells items exclusively on Envato Market
agusmu says
kotofey said
I think you don’t understand me.

wp_enqueue_script() should be called using a WP action hook. Don’t add it directly to your header.php

for example, you can add this code to your functions.php :

add_action( 'get_header', 'my_custom_script');
function my_custom_script() {
    wp_enqueue_script('custom', get_stylesheet_directory_uri().'/js/custom.js', array('jquery'), '0.1', true);
}
113 posts I know Chuck
  • Elite Author: Sold more than $75,000 on Envato Market
  • Has sold $125,000+ on Envato Market
  • Has been part of the Envato Community for over 4 years
  • Sells items exclusively on Envato Market
+5 more
kotofey says
agusmu said
kotofey said
I think you don’t understand me.

wp_enqueue_script() should be called using a WP action hook. Don’t add it directly to your header.php

for example, you can add this code to your functions.php :

add_action( 'get_header', 'my_custom_script');
function my_custom_script() {
    wp_enqueue_script('custom', get_stylesheet_directory_uri().'/js/custom.js', array('jquery'), '0.1', true);
}

Ok. Many thanks. Let’s try.

4363 posts ThemeForest Reviewer
  • Has referred 1+ members
  • Has sold $40,000+ on Envato Market
  • Has collected 50+ items on Envato Market
  • Member of the Envato Team
+12 more
Ivor Envato team says

It’s a bad practice, custom scripts should be included with wp_enqueue_scripts via functions.php – Including JavaScript in header.php directly can lead to some problems.

Why functions.php? -> WordPress standards.

Usage

wp_enqueue_script( 
     $handle
    ,$src
    ,$deps
    ,$ver
    ,$in_footer 
);

Example

function prefix_add_javascript() {
wp_enqueue_script( 'script', get_bloginfo('template_directory').'/includes/js/script.js', array( 'jquery' ), '0.9.2', 'true' );
}    

add_action('wp_enqueue_scripts', 'prefix_add_javascript');

Also you should include your scripts into specific theme pages with conditionals so that the JS doesn’t impact other areas of the theme. For example if you’re using Nivo Slider only in the homepage:

if (is_page_template('custom-home-page.php')) {
    wp_enqueue_script('nivoSlider', get_bloginfo('template_directory').'/includes/js/nivo.js', array('jquery'), '1.0.2', 'true');

    add_action('wp_footer', 'nivo_script');

    function nivo_script() {

        $output = " 
         <script type="text/javascript">
           jQuery(window).load(function() {
                        jQuery('#slider').nivoSlider();
                    });
          </script>";

        echo $output;

    }
}
113 posts I know Chuck
  • Elite Author: Sold more than $75,000 on Envato Market
  • Has sold $125,000+ on Envato Market
  • Has been part of the Envato Community for over 4 years
  • Sells items exclusively on Envato Market
+5 more
kotofey says

Thanks Ivor.

Already done that. New experience was learned. But your information will be very helpful for other guys. :)

I think this thread can be closed.

153 posts
  • Has been part of the Envato Community for over 4 years
  • Has referred 10+ members
  • Has sold $10,000+ on Envato Market
  • Located in Belarus
+2 more
Ilyon says

The fact is the condition

is_page_template('custom-home-page.php')
doesn’t work in functions.php, and always it returns ‘false’.

Any suggestions?

2468 posts
  • Has been part of the Envato Community for over 5 years
  • Has sold $100+ on Envato Market
  • Has referred 100+ members
  • Has been a beta tester for an Envato feature
+3 more
digitalimpact says
Ilyon said
The fact is the condition
is_page_template('custom-home-page.php')
doesn’t work in functions.php, and always it returns ‘false’. Any suggestions?

Exactly, neither does is_page() ...

1950 posts Do the Needful
  • Has sold $125,000+ on Envato Market
  • Elite Author: Sold more than $75,000 on Envato Market
  • Has been part of the Envato Community for over 4 years
  • Has referred 10+ members
+10 more
JamiGibbs says

Here’s how I do conditional wp_enque in functions.php:

function jg_scripts() {

    if ( is_page_template('template-custom.php')  ) {

    wp_enqueue_script('scripts', get_template_directory_uri() . '/js/scripts.js', 'jquery');

    }
}
add_action('template_redirect', 'jg_scripts');

Helpful Information

  • Please read our community guidelines. Self promotion and discussion of piracy is not allowed.
  • Open a support ticket if you would like specific help with your account, deposits or purchases.
  • Item Support by authors is optional and may vary. Please see the Support tab on each item page.

Most of all, enjoy your time here. Thank you for being a valued Envato community member.

Post Reply

Format your entry with some basic HTML. Read the Full Details, or here is a refresher:

<strong></strong> to make things bold
<em></em> to emphasize
<ul><li> or <ol><li> to make lists
<h3> or <h4> to make headings
<pre></pre> for code blocks
<code></code> for a few words of code
<a></a> for links
<img> to paste in an image (it'll need to be hosted somewhere else though)
<blockquote></blockquote> to quote somebody

:grin: :shocked: :cry: Complete List of Smiley Codes

by
by
by
by
by
by