Yoast 변수를 사용하여 페이지 내에서 Yoast 제목을 가져올 수 있는 방법이 있습니까? (즉, %%title%%)
WordPress 일반 페이지 밖에 있는 페이지에서 사용할 수 있도록 기능을 만들어야 합니다.제 말은.wp_head()
거기에 배치되지 않을 것입니다.나는 그것이 목적을 위해 필요합니다.
목적은 CSS나 자바스크립트를 사용할 수 없는 AMP(ampproject.org ) 페이지입니다.이것이 필요한 이유입니다. 기능을 다음에 배치해야 합니다.wp_title()
거기에 효모라는 제목을 붙이도록 말입니다.
나는 이런 것이 필요합니다.
function yoastVariableToTitle($variable){
return yoast_vaialble_to_show_title($variable);
}
기본적으로 효모는 다음과 같은 형식을 사용합니다.
%%title%% %%page%% %%sep%% %%sitename%%
, 매장 및 매장.wp_postmeta
아래의 테이블_yoast_wpseo_title
열쇠.
페이지/게시물의 제목만 가져오는 방법:
function yoastVariableToTitle($post_id) {
$yoast_title = get_post_meta($post_id, '_yoast_wpseo_title', true);
$title = strstr($yoast_title, '%%', true);
if (empty($title)) {
$title = get_the_title($post_id);
}
return $title;
}
SEO title로 2가지 가능성이 있습니다.
사례 I: 관리자 입력%%title%% %%page%% %%sep%% %%sitename%%
SEO 제목 필드에서 위 코드는 Post/Page 기본 제목을 반환합니다.
사례 II: 관리자 입력My Custom Title %%page%% %%sep%% %%sitename%%
SEO title 필드에서 위 코드는 My Custom Title을 반환합니다.
페이지/게시물의 전체 메타 제목을 가져오려면:
function yoastVariableToTitle($post_id) {
$yoast_title = get_post_meta($post_id, '_yoast_wpseo_title', true);
$title = strstr($yoast_title, '%%', true);
if (empty($title)) {
$title = get_the_title($post_id);
}
$wpseo_titles = get_option('wpseo_titles');
$sep_options = WPSEO_Option_Titles::get_instance()->get_separator_options();
if (isset($wpseo_titles['separator']) && isset($sep_options[$wpseo_titles['separator']])) {
$sep = $sep_options[$wpseo_titles['separator']];
} else {
$sep = '-'; //setting default separator if Admin didn't set it from backed
}
$site_title = get_bloginfo('name');
$meta_title = $title . ' ' . $sep . ' ' . $site_title;
return $meta_title;
}
도움이 되길 바랍니다!
당신은 매우 어려운 결정을 내립니다.보다 간단한 해결책이 있습니다.
function get_post_title( WP_Post $post ): string {
$yoast_title = get_post_meta( $post->ID, '_yoast_wpseo_title', true );
if ( empty( $yoast_title ) ) {
$wpseo_titles = get_option( 'wpseo_titles', [] );
$yoast_title = isset( $wpseo_titles[ 'title-' . $post->post_type ] ) ? $wpseo_titles[ 'title-' . $post->post_type ] : get_the_title();
}
return wpseo_replace_vars( $yoast_title, $post );
}
그리고 설명을 위해:
function get_post_description( WP_Post $post ): string {
$yoast_post_description = get_post_meta( $post->ID, '_yoast_wpseo_metadesc', true );
if ( empty( $yoast_post_description ) ) {
$wpseo_titles = get_option( 'wpseo_titles', [] );
$yoast_post_description = isset( $wpseo_titles[ 'metadesc-' . $post->post_type ] ) ? $wpseo_titles[ 'metadesc-' . $post->post_type ] : '';
}
return wpseo_replace_vars( $yoast_post_description, $post );
}
Yoast 14.0 이후로, 이것은 이제 훨씬 쉬워졌습니다.다음 코드로 현재 페이지의 제목을 얻을 수 있습니다.
YoastSEO()->meta->for_current_page()->title;
출처 : https://developer.yoast.com/blog/yoast-seo-14-0-using-yoast-seo-surfaces/
플러그인에서 class-frontend.php(요스트의 클래스)의 함수를 사용하여 사용하는 해결 방법입니다.루프 밖에서 작동합니다. 게시물 아이디를 알려주세요.
function convert_yoast_title ($post_id) {
$string = WPSEO_Meta::get_value( 'title', $post_id );
if ($string !== '') {
$replacer = new WPSEO_Replace_Vars();
return $replacer->replace( $string, get_post($post_id) );
}
return ''; // if not found - returns empty string
}
간단히 다음을 수행할 수 있습니다.
$title = wp_title( '-', false, '' );
결국 라우낙 굽타의 대본을 보게 되었고, 블로그 설명을 메인 페이지 제목에 제대로 표시하기 위해서 수정해야 했습니다.변형된 변형은 다음과 같습니다.
function yoastVariableToTitle($post_id) {
$yoast_title = get_post_meta($post_id, '_yoast_wpseo_title', true);
$title = strstr($yoast_title, '%%', true);
if ( !is_front_page() ) {
$title = strstr( $yoast_title, '%%', true );
} else {
$title = get_bloginfo( 'description' );
}
$wpseo_titles = get_option('wpseo_titles');
$sep_options = WPSEO_Option_Titles::get_instance()->get_separator_options();
if (isset($wpseo_titles['separator']) && isset($sep_options[$wpseo_titles['separator']])) {
$sep = $sep_options[$wpseo_titles['separator']];
} else {
$sep = '-'; //setting default separator if Admin didn't set it from backed
}
$site_title = get_bloginfo('name');
$meta_title = $title . ' ' . $sep . ' ' . $site_title;
return $meta_title;
}
언급URL : https://stackoverflow.com/questions/41361510/is-there-any-way-to-get-yoast-title-inside-a-page-using-the-yoast-variable-i
'IT' 카테고리의 다른 글
vuejs의 temp 값이 있는 테이블에서 새 레코드를 추가하는 방법 (0) | 2023.09.25 |
---|---|
MariaDB Amazon-rds 인스턴스 RMySQL 및 OBDC(윈도우)에 액세스할 수 없음 (0) | 2023.09.25 |
스타일을 한 번에 여러 개의 수업에 적용하려면 어떻게 해야 합니까? (0) | 2023.09.25 |
소수점 2자리 PHP float: .00 (0) | 2023.09.25 |
Path variables in Spring WebSockets @SendTo mapping (0) | 2023.09.25 |