Make WordPress Core

Opened 13 years ago

Last modified 5 years ago

#17183 new defect (bug)

previous_comments_link and next_comments_link return wrong url with PATHINFO permalinks

Reported by: firemotion's profile FireMotion Owned by:
Milestone: Priority: normal
Severity: normal Version: 1.5
Component: Permalinks Keywords: has-patch needs-unit-tests dev-feedback
Focuses: Cc:

Description

When using PATHINFO permalinks, previous_comments_link() and next_comments_link() return a wrong link, which renders paged comments useless.

Steps to reproduce:
Set permalinks to: /index.php/%post_id%/%postname%/

The functions return URLs similar to: /comments-page-1/#comments
This URL results in a file not found (if no rewrite rules are available, which should not be necessary if the PATHINFO permalink structure is used).

Expected URL: /index.php/comments-page-1/#comments
Manual opening the URL results in the expected/correct paged comments page.

Attachments (1)

17183.patch (729 bytes) - added by c3mdigital 11 years ago.

Download all attachments as: .zip

Change History (14)

#1 @Viper007Bond
13 years ago

Correct URL would be /index.php/123/post-name/comments-page-1/#comments, not the URL described.

#2 @solarissmoke
13 years ago

  • Keywords reporter-feedback added

If I set permalinks to

/index.php/%post_id%/%postname%/

And I go to a post with comments, the previous comment link points to:

http://localhost/wp/index.php/26/hello-world/comment-page-1/#comments

Which works fine. Can you clarify what your actual and expected links are?

#3 @FireMotion
13 years ago

My apologies, I now realize some information is missing:

I'm using a static page as my front page (and am not using any posts).

This is why, in my initial post, wrote: /index.php/comments-page-1/#comments, which indeed should be the expected URL (which is confirmed working, when manually entering the URL in a browser).

I'm guessing this is the cause of the problems (and it's confirmed working on other pages that are not the front page).

Last edited 13 years ago by FireMotion (previous) (diff)

#4 @FireMotion
13 years ago

  • Keywords reporter-feedback removed

#5 @Viper007Bond
13 years ago

Ah, so index.php is missing from the comment page links on the static page homepage. Got it.

#6 @FireMotion
13 years ago

Viper007Bond: Your summary is correct.
"index.php" is missing from the comment page links, when using paged comments, a static page and PATHINFO permalinks.

#7 @SergeyBiryukov
13 years ago

  • Keywords needs-patch added

#8 @c3mdigital
11 years ago

  • Version changed from 3.1.1 to 1.5

This is caused by get_page_link()

	if ( 'page' == get_option( 'show_on_front' ) && $post->ID == get_option( 'page_on_front' ) )
		$link = home_url('/');

Patch adds a check for got_mod_rewrite() and if false prepends the permalink with index.php.

@c3mdigital
11 years ago

#9 @c3mdigital
11 years ago

  • Keywords has-patch added; needs-patch removed

#10 @SergeyBiryukov
11 years ago

  • Milestone changed from Awaiting Review to 3.7

#11 @wonderboymusic
10 years ago

  • Keywords needs-unit-tests added

Let's find a way to unit test this

#12 @nacin
10 years ago

  • Milestone changed from 3.7 to Future Release

This doesn't look like the right place for a fix. Also, $wp_rewrite has the ability to return the pathinfo prefix — this can't be hardcoded.

#13 @chriscct7
8 years ago

  • Keywords dev-feedback added
Note: See TracTickets for help on using tickets.