从the_posts_pagination中删除 h2 中的screen_reader_text


To remove screen_reader_text coming in h2 from the_posts_pagination

>我正在使用二十五个主题,对于分页,我使用了the_posts_pagination,想要删除 h2 标签和文本

我已经尝试过,但它只是删除"发布导航"文本,而不是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;' )
) );

请帮帮我。谢谢

目前尚不清楚为什么需要摆脱 h2 标签,因为它具有类 screen-reader-text,在标准的 25teen 主题中,该标签被剪裁以使其不显示。

但是,如果你确实需要这样做,最简单的方法是使用 get_the_posts_pagination() 函数获取 HTML 并在显示之前将其删除:

$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;

参考资料在这里了解更多...

使用这个。 它对我有用

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;'));?>

这很旧,但是 - 如果您转到此链接并搜索函数 the_posts_navigation()您将看到以下参数 'screen_reader_text' => __( '帖子导航' ),所以我们需要覆盖

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' => '',
));

只需确保在其中添加空格即可返回空。不是 __( ' ' )。另一种选择是使用过滤器并为导航钩子"navigation_markup_template"做我们自己的模板。您可以在此处查看示例

你提到要删除 h2 标签和文本。但是对于可访问性,将 h2 与类保持 screen-reader-text 是有帮助的。这篇关于辅助功能的WordPress文章展示了如何直观地隐藏Post navigation文本,但使其可供屏幕阅读器使用。

/* 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;
}

尝试

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

在函数中添加这个.php

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

要删除screen_reader_text我只是简单地添加了 'screen_reader_text'=>' ' the_posts_pagination函数中。

它对我有用!

我知道

这是一个旧帖子,但另一种解决方案是将其隐藏在css中:

.屏幕阅读器文本{ 显示:无}

简单,肮脏,有效!