wake-up-neo.com

동적 페이지에서만 제목 변경

행운을 빌려 동적 페이지의 제목을 변경하려고했습니다.

내가 한 것은 외부 데이터베이스에서 항목 (경우)을로드하는 위치에서 두 개의 페이지 템플릿을 만들었습니다. 한 페이지 템플릿에서 한 페이지 씩로드합니다.

<?php include 'Occasions-files/single.php';?>

그리고 두 번째 페이지 템플릿에는 행사의 개요가로드됩니다.

<?php include 'Occasions-files/file.php';?>

이제 제목은 SEO 플러그인의 기본값입니다. 나는 Yoast SEO뿐만 아니라 All-in-One SEO를 시도했지만 제목을 덮어 쓰는 것처럼 보이지 않습니다. 내가 원하는 것은 single.php에서 기회 이름으로 제목을 변경하지만 SEO 플러그인에 다른 모든 페이지를 남겨 두는 것입니다.

나는 이것에 대해 꽤 경험이 없으며 시작할 곳이 확실하지 않습니다. 테스트 목적으로 get_header 앞에 테스트를 수동으로 넣으려고했다가 수동으로 추가 한 제목을 표시하지만 헤더가 엉망입니다. get_header 뒤에 제목을 넣으면 ok라는 헤더가로드되지만 제목은 표시되지 않고 여전히 기본값입니다.

<title>test</title>
<?php get_header(); ?>

또한, (functions.php에) 필터를 추가하려고 시도했지만 결과가 없거나 삽입하는 방법에 대한 단서가 없습니다.

function custom_title_function($custom_title) {
$custom_title['title'] = "Test Title";
return $custom_title; }
add_filter( 'document_title_parts', 'custom_title_function' );

누구든지이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 고급에 많은 감사드립니다!

1
Ptrckk

단지 <head> 영역 (아마도 header.php에 있음)의 title 태그가 이렇게 보이는지 확인하십시오.

<title><?php wp_title(); ?></title>

Yoast가 작업하고 제목을 무시할 수 있어야합니다.

어쨌든 single.php에 추가하면 (또는 적어도 get_header()이 해당 페이지에 대해 실행되기 전에) 페이지 제목을 수정할 수 있어야합니다.

function custom_page_title( $title ){
    $return = $title;

    // You can check what the current post is via $wp_query->post
    global $wp_query;
    if( isset($wp_query->post) ){
        $id = $wp_query->post->ID;
        $post_title = $wp_query->post->post_title;
        // etc

        $return = $post_title;
    }

    // Or just outright change the title
    $return = 'test';

    return $return;
}
add_filter('wp_title', 'custom_page_title', 20);

또 다른주의 사항은 Yoast를 사용하는 경우 Yoast가 제목을 수정 한 후에이 함수가 실행되는지 확인해야합니다. 그렇지 않으면 Yoast가 변경 한 내용을 덮어 씁니다. add_filter()의 세 번째 매개 변수로 20가 오는 곳입니다. Yoast는 15시에 필터를 실행하므로 20 (또는 15보다 높은 숫자)에서 필터를 실행하면 Yoast의 필터 이후에 필터가 실행되는지 확인할 수 있습니다.

1
James