Можно ли получить постоянную ссылку на страницу от одного слага? Я знаю, что вы можете получить постоянную ссылку на страницу с помощью ID get_page_link()
:
<a href="<?php echo get_page_link(40); ?>">Map</a>
Мне любопытно, есть ли способ сделать то же самое с фрагментом страницы - вот так:
<a href="<?php echo get_page_link('map'); ?>">Map</a>
permalinks
pages
slug
Сэмпсон
источник
источник
get_permalink(get_page_by_path('contact')->ID));
?get_page_by_path()
возвращает массив всей информации о странице.get_permalink()
принимает идентификатор страницы в качестве первого аргумента. Я думал, что мне придется явно передать значение идентификатора.Я думаю, что это может быть лучше:
следуя шаблону «оригинала»
get_page_by_title
WordPress . (строка 3173)Rgds
источник
function get_page_by_slug($page_slug, $output = OBJECT, $post_type = 'page' ) { global $wpdb; $page = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type= %s AND post_status = 'publish'", $page_slug, $post_type ) ); if ( $page ) return get_page($page, $output); return null; }
\WP_Post
из него, и это разрешается непосредственно во всех функциях wordpress, которые проверяют другие значения.\WP_Post
также предоставляет методы непосредственно, чтобы найти большинство связанных данных о посте.Это метод, опубликованный Томом Макфарлином в своем блоге :
Он работает с пользовательскими типами постов и встроенными типами постов (такими как
post
иpage
).источник
принятый ответ неверен, потому что иерархические страницы не работают так. Проще говоря, слаг - это не всегда путь страницы или поста. Например, у вашей страницы есть ребенок и т. Д., Путь будет
parent-slug/child-slug
и неget_page_by_path
будет найденchild-slug
. Правильное решение таково:источник
Попробуй это:
get_page_by_path( 'path' )
возвращает объект page / post, который затем может быть использован, такget_page_link()
как он принимает объект post / page и возвращает постоянную ссылку.источник
Используйте эту функцию
источник