从the_posts_pagination中删除h2中的screen_reader_text

时间:2015-03-15 16:50:15

标签: php wordpress

我正在使用二十五主题和分页,我使用了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;' )
) );

Pl帮助我。感谢

9 个答案:

答案 0 :(得分:7)

目前尚不清楚为什么你需要摆脱h2标签,因为它有screen-reader-text类,它在标准的二十五主题中被剪裁,因此它不会显示。

但是,如果您确实需要这样做,最简单的方法是使用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;

Reference is here了解更多......

答案 1 :(得分:2)

使用它。它对我有用

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

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

答案 2 :(得分:1)

out.extra = ''

答案 3 :(得分:0)

尝试

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

答案 4 :(得分:0)

这很旧,但是-如果您转到此link并搜索the_posts_navigation()函数 您将看到以下arg'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' => '',
));

只需确保在其中添加空格以返回空。不是__('')。 另一个选择是使用filter并为导航钩“ navigation_markup_template”做我们自己的模板。您可以看到示例here

答案 5 :(得分:0)

将此添加到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');

答案 6 :(得分:0)

要删除 screen_reader_text ,我只是添加了 {em> the_posts_pagination 函数中的'screen_reader_text'=>' '

对我有用!

答案 7 :(得分:0)

您提到要删除 h2 标签和文本。但是为了可访问性,将 h2 与类 screen-reader-text 保持一致是有帮助的。 This WordPress article on accessibility 展示了如何在视觉上隐藏 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;
}

答案 8 :(得分:-1)

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

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

简单,肮脏,有效!