Support » Plugin: WangGuard » Plugin assumes fixed directory of ‘wangguard’, 404 errors

  • Hi Jose,

    Multiple 404 errors are visible when the Plugin directory ‘wangguard’ is renamed to ‘_wangguard’, this is due to the fixed Plugin directory name being used throughout the Plugin for JS and CSS assets. This is limited to use of wp_enqueue_script() and wp_register_style().

    Changing the fixed directory from:

    wp_register_style( ‘wangguard_dashicons’, ‘/’ . PLUGINDIR . ‘/wangguard/css/menu.css’, false, WANGGUARD_VERSION );

    to using a dynamic directory CONSTANT, using plugins_url() or a combination of both resolves this:

    wp_register_style( ‘wangguard_dashicons’, plugins_url( ‘/css/menu.css’, basename( dirname( __FILE__ ) ) ), false, WANGGUARD_VERSION );

Viewing 4 replies - 1 through 4 (of 4 total)
  • Call me a curious bystander, but why would you rename the directory to ‘_wangguard’? WordPress names the directory after what’s in the zip file…

    • This reply was modified 7 years, 3 months ago by davidp378.
    Thread Starter Michael Visser

    (@visser)

    Hi @davidp378, I renamed it after the Plugin triggered a 500 Internal Server Error to manually de-activate it (site with 100,000+ Users so it was expected), I later re-activated the Plugin via the WordPress Administration > Plugins screen without reverting the directory name to its default.

    Plugins use plugins_url() to avoid needing to provide the Plugin directory name as well as dependence on the PLUGINDIR Constant within asset links.

    https://codex.wordpress.org/Function_Reference/plugins_url

    Plugins use plugins_url() to avoid needing to provide the Plugin directory name as well as dependence on the PLUGINDIR Constant within asset links.

    Yeah, I’m not exactly a newbie coder, but thanks for the 101 anyway.

    The plugins_url() function without the $path parameter will get you the URL of your plugins directory, such as http://www.example.com/wp-content/plugins — With the $path and $plugin parameter it will get you the full URL of a specific file.

    There’s also constants that are set in WP Core, such as: WP_PLUGIN_URL and WP_PLUGIN_DIR

    I could understand more if you were complaining about the author using a hard-coded full path causing your issue, but I don’t see how it’s his issue if you rename the individual plugin’s directory name. Just my take though.

    Honestly, even using the plugins_url() function and other functions and constants, I’d recommend not letting users change the name of the actual individual plugin directory. That’s kind of a code integrity issue right there, and in general, not a good coding practice. Just sayin.

    Just for my curiosity:

    • Why not just name the directory back to its original name?
    • Did you run WP_DEBUG to see the exact reason for the 500 error? (I’m guessing a timeout?)
    • What version of PHP are you running?
    • What version of MySQL are you running?

    If you have 100,000 users, you absolutely need to be using PHP 7 and the latest version of MySQL. Running a site with that many users, not being on PHP 7 is suicide.

    You’re also going to need to be doing some major database optimization, and possibly server upgrade.

    Thread Starter Michael Visser

    (@visser)

    @davidpmojo, I wasn’t making an assumption of you, just explaining my response clearly for the Plugin author and other readers who might not be familiar with plugins_url() and how to pass a relative directory path to that function as in your example above.

    Renaming the directory back to the assumed ‘wangguard’ resolves this topic 🙂

    FYI, the 500 error was due to a timeout, running the wizard really stressed the site but that’s unrelated to this topic and tweaks were made so that it could complete.

Viewing 4 replies - 1 through 4 (of 4 total)
  • The topic ‘Plugin assumes fixed directory of ‘wangguard’, 404 errors’ is closed to new replies.