Advertisements

get_sample_permalink

Definition:
function get_sample_permalink($id, $title = null, $name = null) {}

Parameters

  • int|object $id: Post ID or post object.
  • string $title: (optional) Title
  • string $name: (optional) Name

Return values

returns:With two entries of type string

Defined filters

  • editable_slug
    apply_filters( 'editable_slug', $uri )

Source code

function get_sample_permalink($id, $title = null, $name = null) {

	$post = &get_post($id);

	if ( !$post->ID )

		return array('', '');



	$ptype = get_post_type_object($post->post_type);



	$original_status = $post->post_status;

	$original_date = $post->post_date;

	$original_name = $post->post_name;



	// Hack: get_permalink would return ugly permalink for

	// drafts, so we will fake, that our post is published

	if ( in_array($post->post_status, array('draft', 'pending')) ) {

		$post->post_status = 'publish';

		$post->post_name = sanitize_title($post->post_name ? $post->post_name : $post->post_title, $post->ID);

	}



	// If the user wants to set a new name -- override the current one

	// Note: if empty name is supplied -- use the title instead, see #6072

	if ( !is_null($name) )

		$post->post_name = sanitize_title($name ? $name : $title, $post->ID);



	$post->post_name = wp_unique_post_slug($post->post_name, $post->ID, $post->post_status, $post->post_type, $post->post_parent);



	$post->filter = 'sample';



	$permalink = get_permalink($post, true);



	// Replace custom post_type Token with generic pagename token for ease of use.

	$permalink = str_replace("%$post->post_type%", '%pagename%', $permalink);



	// Handle page hierarchy

	if ( $ptype->hierarchical ) {

		$uri = get_page_uri($post);

		$uri = untrailingslashit($uri);

		$uri = strrev( stristr( strrev( $uri ), '/' ) );

		$uri = untrailingslashit($uri);

		$uri = apply_filters( 'editable_slug', $uri );

		if ( !empty($uri) )

			$uri .= '/';

		$permalink = str_replace('%pagename%', "{$uri}%pagename%", $permalink);

	}

1665

Advertisements

No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: