最近在进行一些主题修改的过程中经常会调用一些图片、CSS、JS 等静态文件,当然,对于这些静态文件我们可以直接使用绝对路径进行调用,但是考虑到后期对主题的各种折腾,以及分享出去的代码一些小白可能会因为乱修改导致代码无法运行等一系列问题,个人还是倾向于使用 WordPress 的路径函数以及相对路径进行资源的加载。因为自己脑子实在不够用,需要的时候经常忘记,于是决定整理一下WordPress路径函数并进行不定期更新以方便查阅。
WP主页路径
常用:<?php echo home_url(); ?>
输出:http://yourdomain.com
WP安装路径
常用:<?php echo site_url(); ?>
输出:http://yourdomain.com/wordpress
WP管理路径
常用:<?php echo admin_url(); ?>
输出:http://yourdomain.com/wordpress/wp-admin/
wp-includes路径
常用:<?php echo includes_url(); ?>
输出:http://yourdomain.com/wordpress/wp-includes/
wp-content路径
常用:<?php echo content_url(); ?>
输出:http://yourdomain.com/wordpress/wp-content
WP上传路径
常用:
- <?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 echo plugins_url(); ?>
输出:http://yourdomain.com/wordpress/wp-content/plugins
常用:<?php echo plugin_dir_url( __FILE__ );?> //$file(必选)返回当前插件绝对路径
输出:http://yourdomain.com/wordpress/wp-content/plugins/yourplugin/
常用:<?php echo plugin_dir_path( __FILE__ ); ?> //$file(必选)返回当前插件服务器绝对路径。放在主题文件下也会返回主题的服务器绝对路径,不过不建议这么用,容易乱。
输出:D:\\WorkingSoftWare\\phpStudy\\WWW\\wordpress\\wp-content\\plugins\\yourplugin/
WP主题路径
常用:<?php echo get_theme_roots(); ?>
输出:/themes
常用:<?php echo get_theme_root(); ?>
输出:D:\\WorkingSoftWare\\phpStudy\\WWW\\wordpress/wp-content/themes
常用:<?php echo get_theme_root_uri(); ?>
输出:http://yourdomain.com/wordpress/wp-content/themes
常用:<?php echo get_theme_file_uri(); ?>
输出:http://yourdomain.com/wordpress/wp-content/themes/dux
常用:<?php echo get_theme_file_path(); ?>
输出:D:\\WorkingSoftWare\\phpStudy\\WWW\\wordpress/wp-content/themes/dux
常用:<?php echo get_template(); ?> //返回主题名称
输出:dux
常用:<?php echo get_template_directory(); ?>
输出:D:\\WorkingSoftWare\\phpStudy\\WWW\\wordpress/wp-content/themes/dux
常用:<?php echo get_template_directory_uri(); ?>
输出:http://yourdomain.com/wordpress/wp-content/themes/dux
注意:get_template 查询的是主题的 style.css 文件,如果主题目录下没有该文件会出错。
常用:<?php echo get_stylesheet(); ?> //若使用子主题则返回子主题的目录名
输出:dux
常用:<?php echo get_stylesheet(); ?>
输出:http://yourdomain.com/wordpress/wp-content/themes/dux/style.css
常用:
- <?php echo get_stylesheet_directory(); ?> //若使用子主题则返回子主题服务器路径
输出:D:\\WorkingSoftWare\\phpStudy\\WWW\\wordpress/wp-content/themes/dux
- <?php include( get_stylesheet_directory() . ‘/includes/myfile.php’); ?> //不过更多的是用在 include 其他文件上
常用:<?php echo get_stylesheet_directory_uri(); ?>
输出:http://yourdomain.com/wordpress/wp-content/themes/dux
注意:get_stylesheet 查询的是主题的 style.css 文件,如果主题目录下没有该文件会出错。
最后来个比较强力的函数,基本上可以获取上面所有路径及其他信息。
常用:<?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/