Create correct permalinks for child posts of hierarchical post types when default permalinks are used.
props loushou. fixes #29615 for trunk. git-svn-id: https://develop.svn.wordpress.org/trunk@29765 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
fe6f5b3af3
commit
3226d8b867
@ -257,10 +257,12 @@ function get_post_permalink( $id = 0, $leavename = false, $sample = false ) {
|
||||
|
||||
$post_type = get_post_type_object($post->post_type);
|
||||
|
||||
if ( $post_type->hierarchical ) {
|
||||
$slug = get_page_uri( $id );
|
||||
}
|
||||
|
||||
if ( !empty($post_link) && ( !$draft_or_pending || $sample ) ) {
|
||||
if ( ! $leavename ) {
|
||||
if ( $post_type->hierarchical )
|
||||
$slug = get_page_uri($id);
|
||||
$post_link = str_replace("%$post->post_type%", $slug, $post_link);
|
||||
}
|
||||
$post_link = home_url( user_trailingslashit($post_link) );
|
||||
|
@ -651,4 +651,28 @@ class Tests_Query_Results extends WP_UnitTestCase {
|
||||
$this->assertCount( 1, $result );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 29615
|
||||
*/
|
||||
function test_child_post_in_hierarchical_post_type_with_default_permalinks() {
|
||||
global $wp_rewrite;
|
||||
|
||||
$old_permastruct = get_option( 'permalink_structure' );
|
||||
$wp_rewrite->set_permalink_structure( '' );
|
||||
$wp_rewrite->flush_rules();
|
||||
|
||||
register_post_type( 'handbook', array( 'hierarchical' => true ) );
|
||||
|
||||
$post_1 = $this->factory->post->create( array( 'post_title' => 'Contributing to the WordPress Codex', 'post_type' => 'handbook' ) );
|
||||
$post_2 = $this->factory->post->create( array( 'post_title' => 'Getting Started', 'post_parent' => $post_1, 'post_type' => 'handbook' ) );
|
||||
|
||||
$this->assertContains( 'contributing-to-the-wordpress-codex/getting-started', get_permalink( $post_2 ) );
|
||||
|
||||
$result = $this->q->query( array( 'handbook' => 'contributing-to-the-wordpress-codex/getting-started', 'post_type' => 'handbook' ) );
|
||||
$this->assertCount( 1, $result );
|
||||
|
||||
$wp_rewrite->set_permalink_structure( $old_permastruct );
|
||||
$wp_rewrite->flush_rules();
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user