Как убрать метку "Archive:" из заголовка архива

6 нояб. 2016 г., 19:47:24
Просмотры: 41.1K
Голосов: 9

Мне нужно убрать метку "Archive:" из заголовка архивной страницы. Я пробовал следующую строку, но безрезультатно:

<?php the_archive_title('<h2>','</h2>', false);?>

Заголовок продолжает отображать метку "Archive:" перед названием. Как можно от нее избавиться?

Вот полный код моей страницы:

<?php get_header('inner');?>

    <div class="row large-uncollapse">
        <div class="columns small-12 medium-12 large-12">
            <div class="breadcrumbs" typeof="BreadcrumbList" vocab="http://schema.org/">

              <?php if(function_exists('bcn_display'))
              {
                // Вы находитесь здесь:
                echo '<b>Sei in:</b>';
                bcn_display();
              }?>
            </div>

        </div>
    </div>

    <div class="row large-uncollapse">
        <div class="columns small-12 medium-12 large-12 large-centered text-center pad-vr-2">
          <?php echo get_the_archive_title();?>
        </div>
    </div>

<?php if(is_singular('rassegna-stampa')): ?>

    <div id="rassegna-stampa">
        <div class="row large-collapse">

          <?php
          if ( have_posts() ) :
            while ( have_posts() ) : the_post();
              echo '<div class="columns small-12 medium-6 large-4 float-left" style="margin-bottom:10px;">';
              echo '<div class="columns small-3 medium-3 large-3">';
              if(has_post_thumbnail()){
                echo the_post_thumbnail();
              }
              if( get_field('file') ) {
                echo '<a href="';
                the_field('file');
                echo '" data-featherlight="iframe" target="_blank">';
                echo '<button>';
                echo '<img src="';
                echo get_site_url();
                echo '/wp-content/uploads/2016/09/pdf.png" width="20px">';
                echo '</button>';
                echo '</a>';
              }
              if( get_field('link') ) {
                echo '<a href="';
                echo the_field('link');
                echo '" data-featherlight="iframe">';
                echo '<button>';
                echo '<img src="';
                echo get_site_url();
                echo '/wp-content/uploads/2016/09/link.png" width="20px">';
                echo '</button>';
                echo '</a>';
              }
              echo '</div>';
              echo '<div class="columns small-9 medium-9 large-9">';
              echo '<h3 style="margin:0px;">';
              echo the_title();
              echo '</h3>';
              echo '<small>';
              echo '—';
              echo the_field('testata');
              echo '</small>';
              echo '<small>';
              echo the_field('data');
              echo '</small>';
              echo '<span style="font-size:12px;">';
              the_excerpt();
              echo '</span>';
              echo '</div>';
              echo '</div>';
            endwhile;
          else :
            echo wpautop( 'Извините, записи не найдены' );
          endif;
          ?>
        </div>
    </div>


<?php else :?>

    <div id="libri">
        <div class="row large-collapse">

          <?php
          if ( have_posts() ) :
            while ( have_posts() ) : the_post();
              echo '<div class="columns small-12 medium-6 large-4 float-left" style="margin-bottom:10px;padding-bottom: 12px; height:220px;">';
              echo '<div class="columns small-3 medium-3 large-3">';
              if(has_post_thumbnail()){
                echo the_post_thumbnail();
              }
              echo '</div>';
              echo '<div class="columns small-9 medium-9 large-9">';
              echo '<h3 style="margin:0px;">';
              echo the_title();
              echo '</h3>';
              echo '<div style="float:left;width:100%;">';
              echo '<small style="float:left;width:auto;">';
              echo the_field('anno_pubblicazione');
              echo '</small>';
              echo '<div style="float:left; line-height:15px;">';
              echo '&nbsp;—&nbsp; ';
              echo '</div>';
              echo '<small style="float:left;width:auto;">';
              echo the_field('editore');
              echo '</small>';
              echo '</div>';
              echo '<span style="font-size:12px;">';
              the_excerpt();
              echo '</span>';
              echo '</div>';
              echo '<div class="columns small-12 medium-12 large-6">';
              echo '<a href="';
              the_permalink();
              echo '">';
              echo '<button style="width:auto; padding:0.4rem; float:left; border:1px #000 solid;">';
              echo 'Читать далее';
              echo '</button>';
              echo '</a>';
              echo '</div>';
              echo '<div class="columns small-12 medium-12 large-6">';
              if( get_field('link_acquisto') ):
                echo '<a href="';
                echo the_field('link_acquisto');
                echo '" style="color:#D34D3D;">';
                echo '<button style="width:auto; padding:0.4rem; float:left; border:1px #D34D3D solid;">';
                echo 'КУПИТЬ';
                echo '</button>';
                echo '</a>';
              endif;
              echo '</div>';
              echo '</div>';
            endwhile;
          else :
            echo wpautop( 'Извините, записи не найдены' );
          endif;
          ?>
        </div>
    </div>

<?php endif ;?>

<?php get_footer();?>

Спасибо!

3
Комментарии

Вы смотрели https://codex.wordpress.org/Function_Reference/the_title? Не уверен, как это работает с Архивами.

jgraup jgraup
6 нояб. 2016 г. 20:22:59

Изменение ядра — плохая практика. Используйте плагин или разработайте свой!

Mehdi Mehdi
9 нояб. 2024 г. 06:01:15
Все ответы на вопрос 3
7
10

Вам необходимо использовать фильтр get_the_archive_title. Он работает аналогично фильтру the_title. Подробнее о функции, которая встраивает фильтр, можно узнать здесь

Больше информации в этом вопросе: удалить тег категории

РЕДАКТИРОВАНО:

Если это архивная страница пользовательского типа записи, вы можете использовать другую функцию для вывода заголовка: post_type_archive_title(). Затем вы сможете изменить заголовок с помощью фильтра post_type_archive_title, но для этой функции нет префикса.

Поэтому в вашем шаблоне замените вызов функции get_the_archive_title() на:

post_type_archive_title();
6 нояб. 2016 г. 21:33:39
Комментарии

Спасибо за ответ. К сожалению, у меня не работает. Продолжает отображаться "Архивы:". Я нахожусь в архиве пользовательского типа записей, может это поможет?

Stefano Stefano
6 нояб. 2016 г. 22:11:07

Кто-нибудь может помочь?

Stefano Stefano
7 нояб. 2016 г. 15:35:37

Вам нужно посмотреть шаблон архива. Обновите вопрос, добавив его содержимое. Если вы не знаете, какая страница загружается, установите плагин Query Monitor - он предоставит всю информацию.

Benoti Benoti
7 нояб. 2016 г. 15:39:09

Спасибо, я только что отредактировал ответ, добавив полный код.

Stefano Stefano
7 нояб. 2016 г. 15:42:52

Я пропустил ваш первый комментарий! Я редактирую свой ответ.

Benoti Benoti
7 нояб. 2016 г. 15:58:26

Рад за вас! Вы можете изменить часть кода, объединяя строки, например: echo '<img src="'. get_site_url() .'wp-content/uploads/2016/09/link.png" width="20px">';

Benoti Benoti
7 нояб. 2016 г. 16:10:43

Обратите внимание, что если фильтр post_type_archive_title, похоже, не убирает префикс "Archive:", это может быть связано с темой или плагином. Вам следует проверить код и настройки на наличие любых упоминаний этой строки фильтра.

tklodd tklodd
16 дек. 2021 г. 22:38:35
Показать остальные 2 комментариев
1

Также вы можете удалить ненужные слова из любого стандартного заголовка:

add_filter( 'get_the_archive_title', function ($title) {
  if ( is_category() ) {
    $title = single_cat_title( '', false );
  } elseif ( is_tag() ) {
    $title = single_tag_title( '', false );
  } elseif ( is_author() ) {
    $title = '<span class="vcard">' . get_the_author() . '</span>' ;
  } elseif ( is_tax() ) { // для пользовательских типов записей
    $title = sprintf( __( '%1$s' ), single_term_title( '', false ) );
  } elseif (is_post_type_archive()) {
    $title = post_type_archive_title( '', false );
  }
  return $title;
});
5 дек. 2020 г. 22:05:30
Комментарии

Вы украли это отсюда: https://wordpress.stackexchange.com/a/179590/152624

Jesse Nickles Jesse Nickles
19 февр. 2024 г. 10:11:57
0

Если посмотреть на функцию get_the_archive_title(), то префикс теперь (начиная с WP 5.5.0) обёрнут в собственный фильтр (get_the_archive_title_prefix):

$prefix = apply_filters( 'get_the_archive_title_prefix', $prefix );
if ( $prefix ) {
    $title = sprintf(
        /* translators: 1: Title prefix. 2: Title. */
        _x( '%1$s %2$s', 'archive title' ),
        $prefix,
        '<span>' . $title . '</span>'
    );
}

Таким образом, вы можете использовать фильтр, чтобы вернуть пустую строку (или любой другой текст) для замены текста 'Archive:':

add_filter( 'get_the_archive_title_prefix', '__return_empty_string');

или

add_filter( 'get_the_archive_title_prefix', function($prefix) {
    /*$prefix доступен для обработки*/
    return __('ваш пользовательский префикс: ', 'theme-text-domain');
});
5 авг. 2022 г. 18:26:58