Как убрать метку "Archive:" из заголовка архива
Мне нужно убрать метку "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 ' — ';
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();?>
Спасибо!

Вам необходимо использовать фильтр get_the_archive_title
. Он работает аналогично фильтру the_title
.
Подробнее о функции, которая встраивает фильтр, можно узнать здесь
Больше информации в этом вопросе: удалить тег категории
РЕДАКТИРОВАНО:
Если это архивная страница пользовательского типа записи, вы можете использовать другую функцию для вывода заголовка: post_type_archive_title()
.
Затем вы сможете изменить заголовок с помощью фильтра post_type_archive_title
, но для этой функции нет префикса.
Поэтому в вашем шаблоне замените вызов функции get_the_archive_title()
на:
post_type_archive_title();

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

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

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

Также вы можете удалить ненужные слова из любого стандартного заголовка:
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;
});

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

Если посмотреть на функцию 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');
});
