GithubHelp home page GithubHelp logo

Comments (6)

khacoder avatar khacoder commented on June 21, 2024

I have a sniff for this.

from wpthemereview.

justintadlock avatar justintadlock commented on June 21, 2024

One thing I've seen as problematic with this check is that theme authors are now starting to incorrectly use get_template_part() to load non-template files. I wonder if we should consider a check specifically for functions.php that does the opposite. Thoughts?

from wpthemereview.

khacoder avatar khacoder commented on June 21, 2024

I think this needs to be improved as well. I think the warning for using require/include functions could be changed to an error if the file being loaded does not have the 'function' string.

The use of get_template_directory can also be checked in the same (or probably) a new sniff.

from wpthemereview.

justintadlock avatar justintadlock commented on June 21, 2024

I can't ever see this particular check being an error. There are too many exceptions. Just a couple:

This correctly uses locate_template():

$template = locate_template( array( 'example/abc.php`, `example/xyz.php' ) );

if ( $template )
    include( $template );

This correctly uses get_page_template():

$template = get_page_template();

if ( $template )
    include( $template );

Not all files loaded will have a function string. You can have a class without any methods/functions defined. Some files will only have variables.


For a functions-file sniff, get_template_directory() wouldn't really be a good idea either. Just a couple of examples that break that:

Using a variable:

$dir = trailingslashit( get_template_directory() );

require_once( $dir . 'file-1.php' );
require_once( $dir . 'file-2.php' );

Including file from child theme:

if ( is_child_theme() ) {

    $dir = trailingslashit( get_stylesheet_directory() );

    if ( file_exists( $dir . 'example.php' ) )
        require_onc( $dir . 'example.php' );

These are just examples that are common in my own themes. Proper file loading is something that's going to always take a manual check as far as I can tell.

from wpthemereview.

khacoder avatar khacoder commented on June 21, 2024

OK no problem....we can move back to a warning.

However let's eliminate all the warnings that we know are OK. On testing I have seen some themes that have a significant amount of warnings. In themecheck this is handled by not checking the functions.php file, and only issuing one warning per file.

I would think we could add a few checks that would greatly reduce the number of times this warning comes up. One of course would be where functions are defined, a warning should not be issued. That would cut down the warnings significantly.

What do you think?

from wpthemereview.

grappler avatar grappler commented on June 21, 2024

Closing as #67 has been merged.

from wpthemereview.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.