Como personalizar the_archive_title ()?
-
-
Publique sua solução como uma resposta separada.Vocêtambémpode desativar omeue aceitar o seupróprio se desejar :-)Post your solution as a separate answer. You can also unaccept mine and accept your own if you wish :-)
- 0
- 2015-01-27
- Pieter Goosen
-
Oops,eupensei que deleteiessaedição.Seumétodo acabou sendomelhor,entãoeupretendiaexcluir omeu.Eufareiisso agora.Oops, I thought I deleted this edit. Your method ended up being better, so I meant to delete mine. I'll do that now.
- 0
- 2015-01-27
- fildred13
-
6 respostas
- votos
-
- 2015-01-25
Se você olharpara o código-fonte de
get_the_archive_title()
,vocêverá que há umfiltrofornecido,chamadoget_the_archive_title
,através do qual vocêpodefiltrar a saída dafunção.Vocêpode usar o seguintepara alterar a saídaem umapágina de categoria
add_filter( 'get_the_archive_title', function ( $title ) { if( is_category() ) { $title = single_cat_title( '', false ); } return $title; });
If you look at the source code of
get_the_archive_title()
, you will see that there is a filter supplied, calledget_the_archive_title
, through which you can filter the output from the function.You can use the following to change the output on a category page
add_filter( 'get_the_archive_title', function ( $title ) { if( is_category() ) { $title = single_cat_title( '', false ); } return $title; });
-
Issonãofuncionaem umapágina de arquivo com umtítulo de "Arquivo: Livros" (onde os `livros são umtipopersonalizado).Afunção `single_cat_title () apenas retorna umtítulo dapágina se otipofor uma * categoria * ou *tag *.Vocêpode alterar sua respostaparaincluir uma solução quefuncione comtodos ostipos de conteúdo?This doesn't work on an archive page with a title of `Archive: Books` (where `Books` is a custom post type). The `single_cat_title()` function only returns a page title if the type is a *category* or *tag*. Can you amend your answer to include a solution that works with all content types?
- 6
- 2015-09-25
- Quinn Comendant
-
@Quinncomendant Olhepara o código-fonte,linhas 1239e 1240 :-).Se vocêtiver umproblema,bastafazer umanovaperguntaespecífica à suapergunta@QuinnComendant Look at the source code, lines 1239 and 1240 :-). If you have an issue, simply ask a new question specific to your question
- 0
- 2015-09-25
- Pieter Goosen
-
Certo,épreciso retornar umtítulo alternativopara cadataxonomia outipo depostagem queeles querem diferentestítulos.Eupostei uma resposta queexcluiprefixos detodos ostipos.Right, one must return an alternate title for each taxonomy or post type they want different titles for. I've posted an answer that excludes prefixes from all types.
- 1
- 2015-09-27
- Quinn Comendant
-
- 2015-09-27
A resposta aceitafuncionapara remover oprefixo
Categoria: prefixo detítulos de arquivamento de categoria,masnão outrastaxonomias outipos depostagem. Paraexcluir outrosprefixos,existem duas opções: - .
-
reconstrua otítuloparatodas as variantes usadasno original
get_the_archive_title ()
Função://retorna umtítulo alternativo,semprefixo,para cadatipo usadonoget_the_archive_title (). add_filter ('get_the_archive_title',função (title $) { if (is_category ()) { $title=single_cat_title ('',falso); }elseif (is_tag ()) { $title=single_tag_title ('',falso); }elsept (is_author ()) { $title='& lt; span class="vCard" >' .get_the_author (). '& lt;/span >'; }elseif (is_year ()) { $title=get_the_date (_x ('y',"formato anual de data")); }elseif (is_month ()) { $title=get_the_date (_x ('f y',"formato de data de arquivosmensais")); }elseif (is_day ()) { $title=get_the_date (_x ('F J,Y',"Formato de data dos arquivos diários")); }elsef (is_tax ('post_format')) { if (is_tax ('post_format','pós-formato-aside')) { $title=_x ('Asides',"título do arquivopós-formato"); }elseF (IS_TAX ('post_format','Post-format-Gallery')) { $title=_x ('galerias',"título do arquivopós-formato"); }elseF (IS_TAX ('post_format','pós-formato-imagem')) { $title=_x ('imagens',"título do arquivopós-formato"); }elseif (is_tax ('post_format','pós-formato-video')) { $title=_x ('vídeos',"título do arquivopós-formato"); }elseif (is_tax ('post_format','citaçõespós-formato')) { $title=_x ('citações',"título do arquivopós-formato"); }elseF (IS_TAX ('post_format','linkpós-formato')) { $title=_x ('links',"título do arquivopós-formato"); }elseif (is_tax ('post_format','statuspós-formato')) { $title=_x ('status',"título do arquivopós-formato"); }elseif (is_tax ('post_format','pós-formato-áudio')) { $title=_x ('áudio',"título do arquivopós-formato"); }elseF (is_tax ('post_format','pós-formato-chat')) { $title=_x ('chats',"título do arquivopós-formato"); } }elseif (is_post_type_arcive ()) { $title=post_type_archive_title ('',falso); }elseif (is_tax ()) { $title=single_term_title ('',falso); } outro { $title=__ ('Archives'); } retorno $title; });
-
ou,simplesmentetira qualquer coisa que separeça com umprefixo detítulo (quepode alterartítulos reais que contêm umapalavra seguidapelo caractere do cólon):
//simplesmente remova qualquer coisa que separeça com umprefixo detítulo de arquivo ("Archive:","Foo:","Bar:"). add_filter ('get_the_archive_title',função (title $) { retornopreg_replace ('/^ \ w +:/','',title $); });
The accepted answer works to remove the
Category:
prefix from category archive titles, but not other taxonomy or post types. To exclude other prefixes, there are two options:Rebuild the title for all the variants used in the original
get_the_archive_title()
function:// Return an alternate title, without prefix, for every type used in the 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_year() ) { $title = get_the_date( _x( 'Y', 'yearly archives date format' ) ); } elseif ( is_month() ) { $title = get_the_date( _x( 'F Y', 'monthly archives date format' ) ); } elseif ( is_day() ) { $title = get_the_date( _x( 'F j, Y', 'daily archives date format' ) ); } elseif ( is_tax( 'post_format' ) ) { if ( is_tax( 'post_format', 'post-format-aside' ) ) { $title = _x( 'Asides', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-gallery' ) ) { $title = _x( 'Galleries', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-image' ) ) { $title = _x( 'Images', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-video' ) ) { $title = _x( 'Videos', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-quote' ) ) { $title = _x( 'Quotes', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-link' ) ) { $title = _x( 'Links', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-status' ) ) { $title = _x( 'Statuses', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-audio' ) ) { $title = _x( 'Audio', 'post format archive title' ); } elseif ( is_tax( 'post_format', 'post-format-chat' ) ) { $title = _x( 'Chats', 'post format archive title' ); } } elseif ( is_post_type_archive() ) { $title = post_type_archive_title( '', false ); } elseif ( is_tax() ) { $title = single_term_title( '', false ); } else { $title = __( 'Archives' ); } return $title; });
Or, simply strip anything that looks like a title prefix (which may alter actual titles which contain a word followed by the colon character):
// Simply remove anything that looks like an archive title prefix ("Archive:", "Foo:", "Bar:"). add_filter('get_the_archive_title', function ($title) { return preg_replace('/^\w+: /', '', $title); });
-
Paratítulos contendoespaços como `tipo de link: TV` o regex deve ser`/^ (\ W| \ s) +:/`For titles containing spaces like `link type: tv` the regex must be `/^(\w|\s)+: /`
- 0
- 2020-04-19
- aitor
-
-
Issonãofuncionaem umapágina de arquivo com umtítulo de arquivo: Livros (onde os livros são umtipopersonalizado).This doesn't work on an archive page with a title of Archive: Books (where Books is a custom post type).
- 0
- 2017-04-26
- That Brazilian Guy
-
@Thatbrazilianguy [`single_cat_title`] (https://developer.wordpress.org/reference/functions/single_cat_title/) usa 'single_term_title'internamente,quefuncionaem taxonomiastambém.Certifique-se de que seutemanãotenha um dos seguintesmodelos definidos: `Taxonomy-book.php` ou`taxonomy.php`,porqueelestêmprecendência sobre oictor.php`.Além disso,consideretestar qualquer um dosmétodosnas outras respostas.Esta resposta ébastante antiga,estavafuncionandobem na época queeupostei,masnãoestou desenvolvendomaispara o Wordpress.@ThatBrazilianGuy [`single_cat_title`](https://developer.wordpress.org/reference/functions/single_cat_title/) uses `single_term_title` internally, which works on taxonomies as well. Make sure your theme doesn't have one of the following templates defined: `taxonomy-book.php` or `taxonomy.php`, because they have precendence over `archive.php`. Also, consider testing any of the methods in the other answers. This answer is quite old, it was working fine at the time I posted it, but I'm not developing for WordPress anymore.
- 0
- 2017-04-26
- tao
-
-
- 2015-06-25
Outra opção é:
<?php echo str_replace('Brand: ','',get_the_archive_title()); ?>
Substitua amarca: com qualquertexto que vocêesteja querendo se livrar.
vale apena olharpara a diferençaentreget_the_archive_title ()e the_archive_title () the_archive_title () retorna umamatriz get_the_archive_title () retorna uma string
Another option is:
<?php echo str_replace('Brand: ','',get_the_archive_title()); ?>
Replace Brand: with whatever text you are wanting to get rid of.
Its worth looking into the difference between get_the_archive_title() and the_archive_title() the_archive_title() returns an array get_the_archive_title() returns a string
-
the_archive_title ()ecoa otítuloe get_the_archive_title ()não,entãoeles sãobasicamente osmesmos.Se vocêprecisar alterar o conteúdo,então você usaria.the_archive_title() echoes the title and get_the_archive_title() does not, so they are basically the same. If you need to alter the content then you would use get.
- 1
- 2018-08-19
- Robert Went
-
- 2018-01-27
ben gillbanks tem umaboa solução Isso lida comtodos ostipose taxonomias:
function hap_hide_the_archive_title( $title ) { // Skip if the site isn't LTR, this is visual, not functional. // Should try to work out an elegant solution that works for both directions. if ( is_rtl() ) { return $title; } // Split the title into parts so we can wrap them with spans. $title_parts = explode( ': ', $title, 2 ); // Glue it back together again. if ( ! empty( $title_parts[1] ) ) { $title = wp_kses( $title_parts[1], array( 'span' => array( 'class' => array(), ), ) ); $title = '<span class="screen-reader-text">' . esc_html( $title_parts[0] ) . ': </span>' . $title; } return $title; } add_filter( 'get_the_archive_title', 'hap_hide_the_archive_title' );
Ben Gillbanks has a nice solution that handles all post types and taxonomies:
function hap_hide_the_archive_title( $title ) { // Skip if the site isn't LTR, this is visual, not functional. // Should try to work out an elegant solution that works for both directions. if ( is_rtl() ) { return $title; } // Split the title into parts so we can wrap them with spans. $title_parts = explode( ': ', $title, 2 ); // Glue it back together again. if ( ! empty( $title_parts[1] ) ) { $title = wp_kses( $title_parts[1], array( 'span' => array( 'class' => array(), ), ) ); $title = '<span class="screen-reader-text">' . esc_html( $title_parts[0] ) . ': </span>' . $title; } return $title; } add_filter( 'get_the_archive_title', 'hap_hide_the_archive_title' );
-
- 2018-04-17
Vocêpode usar
post_type_archive_title()
para obter otítulo de um arquivo sem otexto "Archives:".You can use
post_type_archive_title()
to get the title of an archive without the "Archives:" text.
No arquivo,eutenho o seguinte códigoparaexibir otítulo dasminhaspáginas de arquivos:
mas queexibemeustítulos como "Categoria: Título da categoria "em vez de simplesmente otítulo sem a "categoria:".
Meuprimeiroinstintofoi substituir
get_the_archive_title ()
dewp-inclui/General-Template
.Mas do queeu li,aparentementeeunão deveria alterar coisasnúcleas WordPress,mesmo com substituições de umtema de criança.Então,qual é amaneiramaisprática de controlar a saída de
the_archive_title ()
?