wordpress教程之函數site_url()、home_url()、bloginfo(‘url’)的區別


在wordpress插件和主題開發中經常需要獲取各種URL路徑,wordpress提供了以下集中方法獲得URL路徑:

plugins_url() — 插件目錄的 URL (例如:http://www.hujuntao.com/wp-content/plugins)
includes_url() — includes 目錄的 URL (例如:http://www.hujuntao.com/wp-includes)
content_url() — content 目錄的 URL (例如:http://www.hujuntao.com/wp-content)
admin_url() — admin 目錄的 URL (例如:http://www.hujuntao.com/wp-admin/)
site_url() — 當前網站的 URL (例如:http://www.hujuntao.com)
home_url() — 當前網站首頁的 URL (例如:http://www.hujuntao.com)

要獲得首頁地址有很多方法:site_url()、home_url()、bloginfo(‘url’)、get_bloginfo(‘url’)、get_site_url()、get_home_url()。它們之間有什么區別呢?
首先來認識下site_url()和home_url()這兩個函數.

site_url() 和 home_url() 很相似,容易混淆。site_url() 返回的是數據庫中 wp_options 表里面的 siteurl 字段值。這是指向 WordPress 核心文件的 URL,也就是你的wordpress安裝路徑。如果你的 WordPress 核心文件在你的服務器的子目錄中,比如 /wordpress,那么 site_url() 的值就會是 http://www.hujuntao.com/wordpress 。在控制面板==>> 設置 ==>> WordPress 地址(URL)修改。(在非不得已的情況下不要修改,一般在安裝成功后這個值是自動生成。修改錯誤的地址會導致頁面打不開,后台管理也進不去,出現這種情況只能通過修改數據庫來修復。)

home_url() 則從 wp_option 表中取得 home 字段的值。這個地址是你希望訪問你的 WordPress 網站的 URL 地址。例如,你的 WordPres 核心文件放在 /wordpress 目錄下,但是你希望你的 URL是 http://www.hujuntao.com,那么就要把 home 的值設置成 http://www.hujuntao.com。在控制面板==>> 設置 ==>> 站點地址(URL)。

如果你的博客安裝在跟目錄這個兩個函數獲得的值就是一樣的,在插件和主題開發中為了使用中得到兼容,所以在選擇的時候需要慎重。

總的來講home_url()就是首頁地址,主要用在需要返回首頁的時候。比如logo的鏈接,“面包屑”的“首頁”鏈接等等。
site_url() wordpress安裝路徑,主要用在獲得本地文件路徑。

弄清楚這兩個函數了,再來看看bloginfo()。
bloginfo用於獲得博客的相關信息,包括主頁,安裝路徑地址。
下面是bloginfo()的可用參數:

  1. name = Testpilot
  2. description = Just another WordPress blog
  3. admin_email = admin@example
  4. url = http://example/home
  5. wpurl = http://example/home/wp
  6. stylesheet_directory = http://example/home/wp/wp-content/themes/child-theme
  7. stylesheet_url = http://example/home/wp/wp-content/themes/child-theme/style.css
  8. template_directory = http://example/home/wp/wp-content/themes/parent-theme
  9. template_url = http://example/home/wp/wp-content/themes/parent-theme
  10. atom_url = http://example/home/feed/atom
  11. rss2_url = http://example/home/feed
  12. rss_url = http://example/home/feed/rss
  13. pingback_url = http://example/home/wp/xmlrpc.php
  14. rdf_url = http://example/home/feed/rdf
  15. comments_atom_url = http://example/home/comments/feed/atom
  16. comments_rss2_url = http://example/home/comments/feed
  17. charset = UTF-8
  18. html_type = text/html
  19. language = en-US
  20. text_direction = ltr
  21. version = 3.1

其中bloginfo(‘url’) = 首頁地址; bloginfo(‘wpurl’) = wordpress安裝路徑;

弄懂這個函數剩下的就簡單了。
wordpress的bloginfo()和get_bloginfo()功能差不多,都是顯示用戶博客的相關信息,這些信息通常來自用戶在WordPress網站后台“我的配置”和“設置>常規”菜單中填寫的內容。 區別就是bloginfo()把結果直接輸出,可以用在頁面模板的任何區域內;而get_bloginfo()則是返回一個數據!
當你需要返回值的時候則用 get_site_url()、get_bloginfo(‘url’)、get_home_url();
例如:


如果你想直接輸出值則用 site_url()、bloginfo(‘url’)、home_url();
例如:

 

下面我們來總結一下:
獲得首頁地址 ==> home_url()、bloginfo(‘url’)、get_bloginfo(‘url’)、get_home_url()。home_url() 3.0加入的函數,為了兼容老版本推薦使用bloginfo();
獲得安裝路徑 ==> site_url()、bloginfo(‘wpurl’)、get_bloginfo(‘wpurl’)、get_site_url()。

如果你需要返回值 ==> get_bloginfo(‘url’)、get_home_url()/get_bloginfo(‘wpurl’)、get_site_url()
如果你想直接輸出值 ==>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM