WordPress.org

Make WordPress Core

Opened 4 years ago

Last modified 22 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 2 years 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).

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

Version 0, edited 4 years ago by FireMotion (next)

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 @c3mdigital2 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.

@c3mdigital2 years ago

comment:9 @c3mdigital2 years ago

  • Keywords has-patch added; needs-patch removed

comment:10 @SergeyBiryukov2 years ago

  • Milestone changed from Awaiting Review to 3.7

comment:11 @wonderboymusic23 months ago

  • Keywords needs-unit-tests added

Let's find a way to unit test this

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