the_archive_title ()을 사용자 정의하는 방법은 무엇입니까?
-
-
솔루션을 별도의 답변으로 게시하십시오.당신은 또한 나의 것을 받아들이지 않고 당신이 원한다면 당신 자신을 받아 들일 수 있습니다 :-)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, 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 대답
- 투표
-
- 2015-01-25
get_the_archive_title()
의 소스 코드를 보면함수의 출력을 필터링 할 수있는get_the_archive_title
이라는 필터가 제공됨을 알 수 있습니다.다음을 사용하여 카테고리 페이지의 출력을 변경할 수 있습니다.
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; });
-
제목이`Archive : Books` 인 아카이브 페이지에서는 작동하지 않습니다 (`Books`는 사용자 지정 게시물 유형 임).`single_cat_title ()`함수는 유형이 * category * 또는 *tag * 인 경우에만 페이지 제목을 반환합니다.모든 콘텐츠 유형에서 작동하는 솔루션을 포함하도록 답변을 수정할 수 있습니까?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 소스 코드,라인 1239 및 1240을보십시오. :-).문제가있는 경우 질문과 관련된 새로운 질문을하기 만하면됩니다.@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
-
맞습니다. 다른 제목을 원하는 각 분류 또는 게시물 유형에 대한 대체 제목을 반환해야합니다.모든 유형에서 접두사를 제외하는 답변을 게시했습니다.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
허용 된 답변은 카테고리 아카이브 제목에서
Category:
접두어를 제거하지만 다른 분류 나 게시물 유형은 제거하지 않습니다. 다른 접두사를 제외하려면 두 가지 옵션이 있습니다.-
원래
get_the_archive_title()
함수에 사용 된 모든 변형의 제목을 다시 작성합니다.// 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; });
-
또는 제목 접두사처럼 보이는 모든 것을 제거하면됩니다 (단어 뒤에 콜론 문자가 오는 실제 제목이 변경 될 수 있음).
// 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); });
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); });
-
`linktype :tv`와 같은 공백이 포함 된 제목의 경우 정규식은`/^ (\ w| \ s) + :/`여야합니다.For titles containing spaces like `link type: tv` the regex must be `/^(\w|\s)+: /`
- 0
- 2020-04-19
- aitor
-
-
제목이 Archive : Books (Book은 사용자 정의 게시물 유형 임) 인 아카이브 페이지에서는 작동하지 않습니다.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/)은 내부적으로`single_term_title`을 사용하며 이는 분류법에서도 작동합니다.테마에`taxonomy-book.php` 또는`taxonomy.php` 템플릿 중 하나가 정의되어 있지 않은지 확인하십시오.`archive.php`보다 우선 순위가 높기 때문입니다.또한 다른 답변의 방법을 테스트 해보십시오.이 답변은 꽤 오래되었고 게시 당시에는 잘 작동했지만 더 이상 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
다른 옵션은 다음과 같습니다.
<?php echo str_replace('Brand: ','',get_the_archive_title()); ?>
브랜드 교체 : 제거하려는 텍스트로.
get_the_archive_title ()과the_archive_title ()의 차이점을 살펴볼 가치가 있습니다. the_archive_title ()은 배열을 반환합니다. get_the_archive_title ()은 문자열을 반환합니다.
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 ()은 제목을 에코하고get_the_archive_title ()은 그렇지 않으므로 기본적으로 동일합니다.콘텐츠를 변경해야하는 경우get을 사용합니다.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 좋은 솔루션이 있습니다 모든 게시물 유형 및 분류를 처리하는 a> :
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
post_type_archive_title()
을 사용하여 "자료실 :"텍스트없이 자료실 제목을 가져올 수 있습니다.You can use
post_type_archive_title()
to get the title of an archive without the "Archives:" text.
자녀 테마의
<사전> <코드> & lt;?php the_archive_title ( '& lt; h1 class="page-title">','& lt;/h1 >'); ? >archive.php
에 보관 페이지 제목을 표시하기위한 다음 코드가 있습니다.하지만 내 제목은 "Category :"가 추가되지 않은 단순한 제목 대신 "Category : Category Title "로 표시됩니다.
내 첫 번째 본능은
wp-includes/general-template
에서get_the_archive_title ()
을 재정의하는 것이 었습니다.하지만 제가 읽은 내용을 보면,워드 프레스 핵심 내용을 변경해서는 안됩니다. 심지어 하위 테마를 덮어 쓰더라도 말입니다.the_archive_title ()
의 출력을 제어하는 가장 좋은 방법은 무엇입니까?