clean_reply_to_com() ) { add_filter( 'comment_reply_link', array( $this, 'remove_reply_to_com' ) ); add_action( 'template_redirect', array( $this, 'replytocom_redirect' ), 1 ); } } /** * Removes the ?replytocom variable from the link, replacing it with a #comment- anchor. * * @todo Should this function also allow for relative urls ? * * @param string $link The comment link as a string. * * @return string The modified link. */ public function remove_reply_to_com( $link ) { return preg_replace( '`href=(["\'])(?:.*(?:\?|&|&)replytocom=(\d+)#respond)`', 'href=$1#comment-$2', $link ); } /** * Redirects out the ?replytocom variables. * * @since 1.4.13 * @return boolean True when redirect has been done. */ public function replytocom_redirect() { if ( isset( $_GET['replytocom'] ) && is_singular() ) { $url = get_permalink( $GLOBALS['post']->ID ); $hash = sanitize_text_field( wp_unslash( $_GET['replytocom'] ) ); $query_string = ''; if ( isset( $_SERVER['QUERY_STRING'] ) ) { $query_string = remove_query_arg( 'replytocom', sanitize_text_field( wp_unslash( $_SERVER['QUERY_STRING'] ) ) ); } if ( ! empty( $query_string ) ) { $url .= '?' . $query_string; } $url .= '#comment-' . $hash; $front = WPSEO_Frontend::get_instance(); $front->redirect( $url, 301 ); return true; } return false; } /** * Checks whether we can allow the feature that removes ?replytocom query parameters. * * @return bool True to remove, false not to remove. */ private function clean_reply_to_com() { /** * Filter: 'wpseo_remove_reply_to_com' - Allow disabling the feature that removes ?replytocom query parameters. * * @param bool $return True to remove, false not to remove. */ return (bool) apply_filters( 'wpseo_remove_reply_to_com', true ); } }