Удалите "Категория:", "Тег:", "Автор:" из the_archive_title
9 ответ
- голосов
-
- 2015-02-27
Вы можете расширить фильтр
get_the_archive_title
,который я упоминали в этом ответе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() ) { //for custom post types $title = sprintf( __( '%1$s' ), single_term_title( '', false ) ); } elseif (is_post_type_archive()) { $title = post_type_archive_title( '', false ); } return $title; });
You can extend the
get_the_archive_title
filter which I've mentioned in this answeradd_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() ) { //for custom post types $title = sprintf( __( '%1$s' ), single_term_title( '', false ) ); } elseif (is_post_type_archive()) { $title = post_type_archive_title( '', false ); } return $title; });
-
Это работает!Спасибо,Питер!В случае,если менее технически подкованные пользователи ищут то же решение: вы добавляете код Питерса в свой файлfunctions.php и все!That works! Thanks, Pieter! In case less tech-savy users are looking for the same solution: You add Pieter's code to your functions.php file and that's it!
- 2
- 2015-02-27
- Nick
-
Сделайте это в дочерней теме,чтобы ваши изменения не потерялись при обновлении темы.Do this in a child theme so your changes won't get lost upon a theme update.
- 0
- 2016-08-19
- Jürgen Paul
-
Это работает довольно хорошо,но в нем отсутствуют случаи для архивов и пользовательских таксономий.This works pretty well, but it's missing cases for archives and custom taxonomies.
- 1
- 2016-11-23
- JacobTheDev
-
См. [Решение] Бена Гиллбанкса (https://www.binarymoon.co.uk/2017/02/hide-archive-title-prefix-wordpress/) для всех архивов типов сообщений и таксономий.See Ben Gillbanks' [solution](https://www.binarymoon.co.uk/2017/02/hide-archive-title-prefix-wordpress/) to all post type archives and taxonomies.
- 0
- 2018-01-27
- Dan Knauss
-
Только что добавлена поддержка архивов CPT :)Just added support for CPT archives :)
- 0
- 2020-03-09
- Maxwell s.c
-
не покрывает годdoens't cover year
- 0
- 2020-07-16
- Corey
-
- 2016-03-04
-
В WP можно делать разные вещи разными способами,но я всегда выбирал самые простые решения.Спасибо,Тимо.You can do things many ways in WP, but I always opted for the simplest solutions. Thanks Timo.
- 1
- 2018-01-11
- f055
-
Что ж,это не работает для всех архивов,которые не являются терминами.Так что на мой взгляд не очень хорошее решение.Well that just doesn't work for all archives that aren't terms. So in my opinion not a very good solution.
- 1
- 2019-04-05
- GDY
-
@GDY не могли бы вы сказать,какие не-термины должны отображаться в архивах?@GDY could you tell, which non-terms should show in archives?
- 0
- 2019-12-17
- Iggy
-
- 2017-08-10
Для заголовка CPT Без слова: «Архив»:
Если вы создаете собственный шаблон архива для CPT и хотите вывести только заголовок CPT без лишних слов вроде «Архив»,используйте вместо этого следующую функцию:
post_type_archive_title();
For CPT title Without word: ‘Archive’:
If you are building custom archive template for a CPT, and want to output just the title of the CPT with no extra word like “Archive” use following function instead:
post_type_archive_title();
-
Приятно - эта функция как раз то,что мне нужно.Обратите внимание,что первый параметр уже по умолчанию и пустая строка,а второй по умолчанию -true,что будет выводить результат вместо его возврата ... так что вы можете просто использоватьpost_type_archive_title (),чтобы получить тот же результат,что иechopost_type_archive_title('',ложь) `Nice - this function is just what I needed. Note that the first parameter already defaults to and empty string and the second defaults to true which would echo out the result instead of returning it... so you could just use `post_type_archive_title()` to get the exact same result as `echo post_type_archive_title( '', false )`
- 0
- 2019-12-08
- squarecandy
-
- 2016-11-30
Я чувствую,что это слишком упрощает,но это то,что я сделал ...
<h1><?php echo str_replace("Archives: ", "", get_the_archive_title()); ?></h1>
I feel like this is over simplifying things, but this is what I did...
<h1><?php echo str_replace("Archives: ", "", get_the_archive_title()); ?></h1>
-
это не сработает для неанглоязычного веб-сайта.this wouldn't work for an non-english website.
- 2
- 2018-11-09
- Maxwell s.c
-
- 2016-08-13
echo '<h1 class="page-title">' . single_cat_title( '', false ) . '</h1>';
вtaxonomy-category.php вне общедоступной темы.echo '<h1 class="page-title">' . single_cat_title( '', false ) . '</h1>';
in taxonomy-category.php outside public of theme. -
- 2018-05-14
Я бы использовал фильтр и поместил его в файлfunctions.php
add_filter( 'get_the_archive_title', 'replaceCategoryName'); function replaceCategoryName ($title) { $title = single_cat_title( '', false ); return $title; }
I would use a filter and put it in a file functions.php
add_filter( 'get_the_archive_title', 'replaceCategoryName'); function replaceCategoryName ($title) { $title = single_cat_title( '', false ); return $title; }
-
Это хорошее решение,но на самом деле вы должны проверитьis_category () перед обновлением $title до single_cat_title,а если неis_category (),то просто верните $title без изменений ..This is a nice solution, but really you should check is_category() before updating $title to single_cat_title, & if not is_category(), then just return the $title unchanged..
- 0
- 2020-08-20
- Paul 501
-
-
Хотя это правда,это уже предлагалось ранее в других ответах.While true, this has been suggested before in other answers.
- 2
- 2018-02-27
- Nicolai
-
-
- 2019-10-06
Предполагая,что формат всегда:
Prefix: Archive Name
,мы можем просто найти первое двоеточие,за которым следует пробел,и отображать содержимое только после этого,используя get_the_archive_title () с функцией PHP substr () и функции strpos () .<?php // Only show the portion of the string following the first ": " echo substr(get_the_archive_title(), strpos(get_the_archive_title(), ': ') + 2); ?>
Assuming the format is always:
Prefix: Archive Name
, we can just find the first colon followed by a space, and only show the content after this, using get_the_archive_title() with PHP's substr() and strpos() functions.<?php // Only show the portion of the string following the first ": " echo substr(get_the_archive_title(), strpos(get_the_archive_title(), ': ') + 2); ?>
-
- 2016-09-06
каталог:
wp-includes
файл:
general-template.php
функция поиска:
get_the_archive_title()
изменение:if ( is_category() ) { $title = sprintf( __( 'Category: %s' ), single_cat_title( '', false ) ); } elseif ( is_tag() ) { $title = sprintf( __( 'Tag: %s' ), single_tag_title( '', false ) ); } elseif ( is_author() ) { $title = sprintf( __( 'Autor: %s' ), '<span class="vcard">' . get_the_author() . '</span>' ); }
кому:
if ( is_category() ) { $title = sprintf( __( '%s' ), single_cat_title( '', false ) ); } elseif ( is_tag() ) { $title = sprintf( __( '%s' ), single_tag_title( '', false ) ); } elseif ( is_author() ) { $title = sprintf( __( '%s' ), '<span class="vcard">' . get_the_author() . '</span>' ); }//if you want to remove or just change text if you need to
directory:
wp-includes
file:
general-template.php
find function:
get_the_archive_title()
change:if ( is_category() ) { $title = sprintf( __( 'Category: %s' ), single_cat_title( '', false ) ); } elseif ( is_tag() ) { $title = sprintf( __( 'Tag: %s' ), single_tag_title( '', false ) ); } elseif ( is_author() ) { $title = sprintf( __( 'Autor: %s' ), '<span class="vcard">' . get_the_author() . '</span>' ); }
to:
if ( is_category() ) { $title = sprintf( __( '%s' ), single_cat_title( '', false ) ); } elseif ( is_tag() ) { $title = sprintf( __( '%s' ), single_tag_title( '', false ) ); } elseif ( is_author() ) { $title = sprintf( __( '%s' ), '<span class="vcard">' . get_the_author() . '</span>' ); }//if you want to remove or just change text if you need to
-
Эээ,вы действительно предлагаете взломать ядро?Err, are you really suggesting hacking the core here?
- 3
- 2016-09-06
- cjbj
-
Это очень и очень плохая идея.Вы не можете обновить сейчас,не создав отдельную ветку.This is a very, very bad idea. You cannot update now without creating a separate branch.
- 4
- 2016-09-06
- fuxia
-
Извините,если я сломаю роли,я дам слово для этого,но это просто еще одно решение,ничего злого.Итак,вы сказали,что я взламываю свой сайт или не могу поделиться кодом из основных файлов?Sory if I break roles I give a word for that, but this is just another solution nothing malicious. So, you said that I hack my own site or I cant share code from core files?
- 0
- 2016-09-06
- Dragan Nikolic
-
Что ж,это ваш веб-сайт,и вы можете редактировать все,что хотите - даже файлы ядра.Однако Интернет сломается,если вы обновите свой Wordpress ...Well, it's your website and you may edit whatever you want - even the core files. However, the web will break if you update your Wordpress...
- 0
- 2016-09-22
- Raccoon
В архиве моей темы archive.php есть следующий код:
Это дает мне такие названия,как «Категория: Россия»,«Метка: Америка»,«Автор: Джон».
Я хотел бы удалить части «Категория:»,«Тег:» и «Автор:» и просто отобразить категорию,тег и имена авторов.
Кто-нибудь знает,как этого добиться?
Спасибо.