Agregar Una Clase A “next_posts_link” y “previous_posts_link”

Recientemente me he encontrado con una situación en la que tenía que agregar una clase a los links generados por la función de WordPress next_posts_link a la cual no le podemos pasar un atributo class de forma directa, por lo que hay que recurrir a hacerle un filtro para modificar la salida de dicha función.

Investigué un poco y pude encontrar una solución tanto para los links de los posts como para los links de las entradas individuales y las páginas que varían un poco.

/* Posts */
function posts_link_attr() {
  return 'class="button"';
}

/* Filter Posts Links */
add_filter( 'next_posts_link_attributes', 'posts_link_attr');
add_filter( 'previous_posts_link_attributes', 'posts_link_attr');

Esto funciona perfectamente pero hay un problema y es que next_posts_link_attributes son los enlaces que se muestran cuando hacemos un query y next_post_link son los enlaces que van en las entradas individuales o páginas, así que esta es la otra función para concluir.

/* Single */
function post_link_attr( $output ) {
  $class = 'class="button"';
  return str_replace('<a href=', '<a '. $class .' href=', $output);
}

/* Filter Single Links */
add_filter( 'next_post_link', 'post_link_attr' );
add_filter( 'previous_post_link', 'post_link_attr' );