在WordPress項目開發過程,很可能需要獲取WordPress各類頁面的鏈接,包括首頁、文章頁、Page頁面、存檔頁面等等,下面就簡單分享下獲取WordPress各類頁面的鏈接的方法。
獲取文章或頁面鏈接
直接輸出文章或頁面的鏈接:
1<?phpthe_permalink();?>返回文章或頁面的鏈接,以供調用:
1get_permalink();可以使用echo輸出,結果和直接使用the_permalink()一樣:
1<?phpechoget_permalink();?>獲取存檔頁面鏈接
123456789101112131415161718192021222324252627282930313233343536functionget_current_archive_link($paged=true){$link=false;if(is_front_page()){$link=home_url('/');}elseif(is_home()&&"page"==get_option('show_on_front')){$link=get_permalink(get_option('page_for_posts'));}elseif(is_tax()||is_tag()||is_category()){$term=get_queried_object();$link=get_term_link($term,$term->taxonomy);}elseif(is_post_type_archive()){$link=get_post_type_archive_link(get_post_type());}elseif(is_author()){$link=get_author_posts_url(get_query_var('author'),get_query_var('author_name'));}elseif(is_archive()){if(is_date()){if(is_day()){$link=get_day_link(get_query_var('year'),get_query_var('monthnum'),get_query_var('day'));}elseif(is_month()){$link=get_month_link(get_query_var('year'),get_query_var('monthnum'));}elseif(is_year()){$link=get_year_link(get_query_var('year'));}}}if($paged&&$link&&get_query_var('paged')>1){global$wp_rewrite;if(!$wp_rewrite->using_permalinks()){$link=add_query_arg('paged',get_query_var('paged'),$link);}else{$link=user_trailingslashit(trailingslashit($link).trailingslashit($wp_rewrite->pagination_base).get_query_var('paged'),'archive');}}return$link;}該函數可以輸出首頁、分類法(自定義分類法、標簽、分類)、自定義文章類型的存檔頁面、作者存檔頁面、日期存檔頁面的鏈接,包含分頁。
獲取當前頁面鏈接
如果你不想判斷頁面類型,只想輸出當前頁面的鏈接,可以使用下面的代碼:
12345678<?phpglobal$wp;$current_url=home_url(add_query_arg(array(),$wp->request));echo$current_url;?>