Using WordPress ‘get_comments_link’ PHP filter

The get_comments_link WordPress PHP filter allows you to modify the post comments permalink.

Usage

add_filter('get_comments_link', 'your_custom_function', 10, 2);

function your_custom_function($comments_link, $post) {
  // your custom code here
  return $comments_link;
}

Parameters

  • $comments_link (string) – The post comments permalink with ‘#comments’ appended.
  • $post (int|WP_Post) – The Post ID or WP_Post object.

More information

See WordPress Developer Resources: get_comments_link

Examples

Add a custom query parameter

Add a custom query parameter to the comments link.

add_filter('get_comments_link', 'add_custom_query_parameter', 10, 2);

function add_custom_query_parameter($comments_link, $post) {
  $comments_link .= '&custom_param=value';
  return $comments_link;
}

Change the comments anchor

Change the anchor appended to the comments link.

add_filter('get_comments_link', 'change_comments_anchor', 10, 2);

function change_comments_anchor($comments_link, $post) {
  $comments_link = str_replace('#comments', '#custom_anchor', $comments_link);
  return $comments_link;
}

Add a tracking parameter

Add a tracking parameter to the comments link for analytics purposes.

add_filter('get_comments_link', 'add_tracking_parameter', 10, 2);

function add_tracking_parameter($comments_link, $post) {
  $comments_link .= '&utm_source=comments';
  return $comments_link;
}

Append post ID to the anchor

Append the post ID to the comments anchor to create unique anchors for each post.

add_filter('get_comments_link', 'append_post_id_to_anchor', 10, 2);

function append_post_id_to_anchor($comments_link, $post) {
  $post_id = is_object($post) ? $post->ID : $post;
  $comments_link = str_replace('#comments', '#comments_' . $post_id, $comments_link);
  return $comments_link;
}

Modify comments link based on post type

Change the comments link depending on the post type.

add_filter('get_comments_link', 'modify_comments_link_based_on_post_type', 10, 2);

function modify_comments_link_based_on_post_type($comments_link, $post) {
  if ($post->post_type === 'custom_post_type') {
    $comments_link = '/custom_comments_page/?post_id=' . $post->ID;
  }
  return $comments_link;
}