यह टॉम मैकफर्लिन द्वारा अपने ब्लॉग पर प्रकाशित एक विधि है :
/**
* Returns the permalink for a page based on the incoming slug.
*
* @param string $slug The slug of the page to which we're going to link.
* @return string The permalink of the page
* @since 1.0
*/
function wpse_4999_get_permalink_by_slug( $slug, $post_type = '' ) {
// Initialize the permalink value
$permalink = null;
// Build the arguments for WP_Query
$args = array(
'name' => $slug,
'max_num_posts' => 1
);
// If the optional argument is set, add it to the arguments array
if( '' != $post_type ) {
$args = array_merge( $args, array( 'post_type' => $post_type ) );
}
// Run the query (and reset it)
$query = new WP_Query( $args );
if( $query->have_posts() ) {
$query->the_post();
$permalink = get_permalink( get_the_ID() );
wp_reset_postdata();
}
return $permalink;
}
यह कस्टम पोस्ट प्रकारों और अंतर्निहित पोस्ट प्रकारों (जैसे कि post
और page
) के साथ काम करता है ।
get_permalink(get_page_by_path('contact')->ID));
?