Im seeing WordPress plugins either use plugins_url or plugin_dir_url when creating constants to some of their folders. Is one better than the other?


define( 'MEMBERS_URI', trailingslashit( plugin_dir_url( __FILE__ ) ) );
define( 'WPACCESS_INC', plugins_url( 'inc', __FILE__ ) , true );
  • 2
    Note - you don't need to use trailingslashit() for plugin_dir_url() because it already uses it within function.
    – Amit Kosti
    Commented Aug 13, 2012 at 16:00

1 Answer 1


Checkout - wp-includes/plugin.php#L585

plugin_dir_url() function internally uses plugins_url() to get the link to plugin directory.


This will return url of the plugin directory with a trailing slash at the end. So this can be easily used to link to the plugin directory.

e.g - http://www.example.com/wp-content/plugins/foo/


If no arguments are passed this will deliver the same result as the above function; but with or without a trailing slash at the end. This can be configured to link to files within plugin directory; a useful shortcut.

e.g -

plugins_url( 'img/bar.jpg' , __FILE__ ) will return a url like http://www.example.com/wp-content/plugins/foo/img/bar.jpg

  • 1
    Why couldn't the WordPress documentation writes figure out how to explain this...! Well, they have never impressed me to say the least... Commented Mar 21, 2022 at 11:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.