Apakah mungkin untuk mendapatkan permalink halaman dari siput saja? Saya sadar bahwa Anda bisa mendapatkan permalink halaman dari ID menggunakan get_page_link()
:
<a href="<?php echo get_page_link(40); ?>">Map</a>
Saya ingin tahu apakah ada cara untuk melakukan hal yang sama dengan siput halaman - seperti ini:
<a href="<?php echo get_page_link('map'); ?>">Map</a>
permalinks
pages
slug
Sampson
sumber
sumber
get_permalink(get_page_by_path('contact')->ID));
?get_page_by_path()
mengembalikan array dari semua informasi halaman.get_permalink()
mengambil ID halaman sebagai argumen pertama. Saya pikir saya harus secara eksplisit memberikan nilai ID.Saya pikir ini bisa lebih baik:
mengikuti pola "asli"
get_page_by_title
dari wordpress . (baris 3173)rgds
sumber
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
dari itu, dan itu langsung diselesaikan di semua fungsi wordpress yang memeriksa nilai-nilai lain.\WP_Post
juga menyediakan metode langsung untuk menemukan sebagian besar data terkait tentang pos.Ini adalah metode yang diterbitkan oleh Tom McFarlin di blognya :
Ini berfungsi dengan tipe posting khusus dan tipe posting bawaan (seperti
post
danpage
).sumber
jawaban yang diterima salah karena halaman hierarkis tidak berfungsi seperti itu. Sederhananya, siput tidak selalu jalur halaman atau posting. Misalnya halaman Anda memiliki anak dll. Jalan akan
parent-slug/child-slug
danget_page_by_path
gagal menemukanchild-slug
cara ini. Solusi yang tepat adalah ini:sumber
Coba ini:
get_page_by_path( 'path' )
mengembalikan halaman / objek pos yang kemudian dapat digunakan olehget_page_link()
karena menerima objek post / halaman dan mengembalikan permalink.sumber
Gunakan fungsi ini oleh
sumber