最近在进行一些主题修改的过程中经常会调用一些图片、CSS、JS 等静态文件,当然,对于这些静态文件我们可以直接使用绝对路径进行调用,但是考虑到后期对主题的各种折腾,以及分享出去的代码一些小白可能会因为乱修改导致代码无法运行等一系列问题,个人还是倾向于使用 WordPress 的路径函数以及相对路径进行资源的加载。因为自己脑子实在不够用,需要的时候经常忘记,于是决定整理一下WordPress路径函数并进行不定期更新以方便查阅。

 WP主页路径

<?php home_url( $path, $scheme ); ?>

常用:<?php echo home_url(); ?>

输出:http://yourdomain.com

WP安装路径

<?php site_url( $path, $scheme ); ?>

常用:<?php echo site_url(); ?>

输出:http://yourdomain.com/wordpress

WP管理路径

<?php admin_url( $path, $scheme ); ?>

常用:<?php echo admin_url(); ?>

输出:http://yourdomain.com/wordpress/wp-admin/

wp-includes路径

<?php includes_url( $path ); ?>

常用:<?php echo includes_url(); ?>

输出:http://yourdomain.com/wordpress/wp-includes/

wp-content路径

<?php content_url( $path ); ?>

常用:<?php echo content_url(); ?>

输出:http://yourdomain.com/wordpress/wp-content

WP上传路径

<?php wp_upload_dir( string $time = nullbool $create_dir = true,bool $refresh_cache = false ) ?>

常用

  • <?php $upload_dir = wp_upload_dir(); echo $upload_dir[‘baseurl’]; ?>

输出:http://yourdomain.com/wordpress/wp-content/uploads

  • <?php $upload_dir = wp_upload_dir(); echo $upload_dir[‘url’]; ?>

输出:http://yourdomain.com/wordpress/wp-content/uploads/2018/01

  • <?php $upload_dir = wp_upload_dir(); echo $upload_dir[‘basedir’]; ?>

输出:D:\WorkingSoftWare\phpStudy\WWW\wordpress/wp-content/uploads

  • <?php $upload_dir = wp_upload_dir(); echo $upload_dir[‘path’]; ?>

输出:D:\WorkingSoftWare\phpStudy\WWW\wordpress/wp-content/uploads/2018/01

后面两个是服务器的路径。

WP插件路径

<?php plugins_url( $path, $plugin ); ?>

常用:<?php echo plugins_url(); ?>

输出:http://yourdomain.com/wordpress/wp-content/plugins

<?php plugin_dir_url($file) ?>

常用:<?php echo plugin_dir_url( __FILE__ );?>      //$file(必选)返回当前插件绝对路径

输出:http://yourdomain.com/wordpress/wp-content/plugins/yourplugin/

<?php plugin_dir_path($file); ?>

常用:<?php echo plugin_dir_path( __FILE__ ); ?>      //$file(必选)返回当前插件服务器绝对路径。放在主题文件下也会返回主题的服务器绝对路径,不过不建议这么用,容易乱。

输出:D:\WorkingSoftWare\phpStudy\WWW\wordpress\wp-content\plugins\yourplugin/

WP主题路径

<?php get_theme_roots(); ?>

常用:<?php echo get_theme_roots(); ?>

输出:/themes

<?php get_theme_root( '$stylesheet_or_template' ); ?>

常用:<?php echo get_theme_root(); ?>

输出:D:\WorkingSoftWare\phpStudy\WWW\wordpress/wp-content/themes

<?php get_theme_root_uri(); ?>

常用:<?php echo get_theme_root_uri(); ?>

输出:http://yourdomain.com/wordpress/wp-content/themes

<?php get_theme_file_uri( '$file' ) ?>

常用:<?php echo get_theme_file_uri(); ?>

输出:http://yourdomain.com/wordpress/wp-content/themes/dux

<?php get_theme_file_path( '$file' ) ?>

常用:<?php echo get_theme_file_path(); ?>

输出:D:\WorkingSoftWare\phpStudy\WWW\wordpress/wp-content/themes/dux

<?php get_template(); ?>

常用:<?php echo get_template(); ?>      //返回主题名称

输出:dux

<?php get_template_directory(); ?>

常用:<?php echo get_template_directory(); ?>

输出:D:\WorkingSoftWare\phpStudy\WWW\wordpress/wp-content/themes/dux

<?php get_template_directory_uri(); ?>

常用:<?php echo get_template_directory_uri(); ?>

输出:http://yourdomain.com/wordpress/wp-content/themes/dux

注意:get_template 查询的是主题的 style.css 文件,如果主题目录下没有该文件会出错。

<?php get_stylesheet(); ?>

常用:<?php echo get_stylesheet();  ?>      //若使用子主题则返回子主题的目录名

输出:dux

<?php get_stylesheet_uri(); ?>

常用:<?php echo get_stylesheet();  ?>

输出:http://yourdomain.com/wordpress/wp-content/themes/dux/style.css

<?php get_stylesheet_directory() ?>

常用:

  • <?php echo get_stylesheet_directory(); ?>      //若使用子主题则返回子主题服务器路径

输出:D:\WorkingSoftWare\phpStudy\WWW\wordpress/wp-content/themes/dux

  • <?php include( get_stylesheet_directory() . ‘/includes/myfile.php’); ?>      //不过更多的是用在 include 其他文件上
<?php get_stylesheet_directory_uri(); ?>

常用:<?php echo get_stylesheet_directory_uri(); ?>

输出:http://yourdomain.com/wordpress/wp-content/themes/dux

注意:get_stylesheet 查询的是主题的 style.css 文件,如果主题目录下没有该文件会出错。

 

最后来个比较强力的函数,基本上可以获取上面所有路径及其他信息。

<?php get_bloginfo( '$show''$filter' ) ?>

常用:<?php echo get_bloginfo(‘url’) ?>      //get_bloginfo可以获取博客的多种信息,$show设置为url时获取博客地址

输出:http://yourdomain.com

get_bloginfo还可以获取的其他信息有:name、description、wpurl、siteurl/url、admin_email、charset、version、html_type、text_direction、language、stylesheet_url、stylesheet_directory、template_url、template_directory、pingback_url、atom_url、rdf_url、rss_url、rss2_url、comments_atom_url、comments_rss2_url。

参考文档:https://developer.wordpress.org/reference/functions/