Para eliminar screen_reader_text que viene en h2 de the_posts_pagination

3 minutos de lectura

avatar de usuario
Bhumi Shah

Estoy usando el tema veinticinco y para la paginación, he usado the_posts_pagination y quiero eliminar la etiqueta y el texto h2

Lo he intentado, pero simplemente eliminó el texto “Publicar navegación”, no la etiqueta h2

the_posts_pagination( array(
  'prev_text'          => __( ' ', 'twentyfifteen' ),
  'next_text'          => __( ' ', 'twentyfifteen' ),
  'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( '', 'twentyfifteen' ) . ' </span>',//Page
  'screen_reader_text' => __( '&nbsp;' )
) );

Por favor, ayúdame. Gracias

No está claro por qué necesita deshacerse de la etiqueta h2, ya que tiene clase screen-reader-text que, en el tema estándar veinticinco, se recorta para que no se muestre.

Pero, si necesita hacerlo, la forma más fácil es usar la función get_the_posts_pagination() para obtener el HTML y eliminarlo antes de mostrarlo:

$nav = get_the_posts_pagination( array(
        'prev_text'          => __( '&nbsp;', 'twentyfifteen' ),
        'next_text'          => __( '&nbsp;', 'twentyfifteen' ),
        'screen_reader_text' => __( 'A' )
    ) );
$nav = str_replace('<h2 class="screen-reader-text">A</h2>', '', $nav);
echo $nav;

La referencia está aquí para más…

  • Por otro lado, entiendo bien la necesidad de Bhumi Shah: no quiero una etiqueta en el marcado que no necesito, especialmente porque es un H2, una etiqueta importante también para los motores de búsqueda.

    – Marco Panichi

    15 abr a las 10:01


Utilizar este. esto funciona para mi

function the_clean_pagination()
{
 $thePagination = get_the_posts_pagination();

 echo preg_replace('~(<h2\\s(class="screen-reader-text")(.*)[$>])(.*)(</h2>)~ui', '', $thePagination);
} 

<?php the_posts_pagination(array( 'screen_reader_text'=> '&nbsp;'));?>

avatar de usuario
Martín Stoichev

Esto es viejo pero – si vas a esto Enlace y busque la función the_posts_navigation() verá el siguiente argumento ‘screen_reader_text’ => __( ‘Mensajes de navegación’), por lo que debemos anular

the_posts_pagination(array(
    'mid_size' => 2,
    'prev_text' => '<span class="prev-page">Prev</span>',
    'next_text' => '<span class="next-page">Next</span>',
    'screen_reader_text' => ' ',
    'before_page_number' => '',
));

Solo asegúrese de agregar espacio en él para volver vacío. No __( ‘ ‘ ). Otra opción es usar el filtro y hacer nuestra propia plantilla para el gancho de navegación “navigation_markup_template”. Puedes ver un ejemplo aquí

Mencionaste querer eliminar la etiqueta h2 y el texto. Pero para la accesibilidad, es útil mantener el h2 con clase. screen-reader-text.
Este artículo de WordPress sobre accesibilidad muestra cómo ocultar el Post navigation texto visualmente, pero manténgalo disponible para los lectores de pantalla.

/* Text meant only for screen readers. */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}

avatar de usuario
ketan

Probar

$nav = str_replace('<h2 class="screen-reader-text">A</h2>', '', $nav);

avatar de usuario
Arcilla

Agregue esto en function.php

function sanitize_pagination($content) {
  // Remove h2 tag
  $content = preg_replace('#<h2.*?>(.*?)<\/h2>#si', '', $content);
  return $content;
}

add_action('navigation_markup_template', 'sanitize_pagination');

¿Ha sido útil esta solución?