WordPress函数 plugins_url 用来返回插件下文件的网址。

应用举例1

该plugins_url()函数常用在插件文件中。__FILE__在$plugin参数的位置传递PHP 魔法常量使得$path相对于该文件的父目录:

1
echo '<img src="' . esc_url( plugins_url( 'images/wordpress.png', __FILE__ ) ) . '" /> ';

以上可能输出此HTML标记:

1
<img src="http://www.example.com/wp-content/plugins/my-plugin/images/wordpress.png" />

如果您plugins_url()在嵌套在插件目录子目录中的文件中使用该函数,则应使用 PHP 的dirname()函数:

1
echo '<img src="' . esc_url( plugins_url( 'images/wordpress.png', dirname(__FILE__) ) ) . '" /> ';

以上可能输出此HTML标记:

1
<img src="http://www.example.com/wp-content/plugins/images/wordpress.png" />

函数源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
unction plugins_url( $path = '', $plugin = '' ) {
 
    $path          = wp_normalize_path( $path );
    $plugin        = wp_normalize_path( $plugin );
    $mu_plugin_dir = wp_normalize_path( WPMU_PLUGIN_DIR );
 
    if ( ! empty( $plugin ) &amp;&amp; 0 === strpos( $plugin, $mu_plugin_dir ) ) {
        $url = WPMU_PLUGIN_URL;
    } else {
        $url = WP_PLUGIN_URL;
    }
 
    $url = set_url_scheme( $url );
 
    if ( ! empty( $plugin ) &amp;&amp; is_string( $plugin ) ) {
        $folder = dirname( plugin_basename( $plugin ) );
        if ( '.' !== $folder ) {
            $url .= '/' . ltrim( $folder, '/' );
        }
    }
 
    if ( $path &amp;&amp; is_string( $path ) ) {
        $url .= '/' . ltrim( $path, '/' );
    }
 
    /**
     * Filters the URL to the plugins directory.
     *
     * @since 2.8.0
     *
     * @param string $url    The complete URL to the plugins directory including scheme and path.
     * @param string $path   Path relative to the URL to the plugins directory. Blank string
     *                       if no path is specified.
     * @param string $plugin The plugin file path to be relative to. Blank string if no plugin
     *                       is specified.
     */
    return apply_filters( 'plugins_url', $url, $path, $plugin );
}

版权声明:部分文章、图片等内容为用户发布或互联网整理而来,仅供学习参考。如有侵犯您的版权,请联系我们,将立刻删除。