WordPress.org

Make WordPress Core

Opened 4 years ago

Last modified 17 months ago

#17183 new defect (bug)

previous_comments_link and next_comments_link return wrong url with PATHINFO permalinks

Reported by: FireMotion Owned by:
Milestone: Future Release Priority: normal
Severity: normal Version: 1.5
Component: Permalinks Keywords: has-patch needs-unit-tests
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 19 months ago.

Download all attachments as: .zip

Change History (13)

comment:1 @Viper007Bond4 years ago

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

comment:2 @solarissmoke4 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?

comment:3 @FireMotion4 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 4 years ago by FireMotion (previous) (diff)

comment:4 @FireMotion4 years ago

  • Keywords reporter-feedback removed

comment:5 @Viper007Bond4 years ago

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

comment:6 @FireMotion4 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.

comment:7 @SergeyBiryukov4 years ago

  • Keywords needs-patch added

comment:8 @c3mdigital19 months 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.

@c3mdigital19 months ago

comment:9 @c3mdigital19 months ago

  • Keywords has-patch added; needs-patch removed

comment:10 @SergeyBiryukov19 months ago

  • Milestone changed from Awaiting Review to 3.7

comment:11 @wonderboymusic18 months ago

  • Keywords needs-unit-tests added

Let's find a way to unit test this

comment:12 @nacin17 months 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.

Note: See TracTickets for help on using tickets.