source

WordPress Post에서 사용자 지정 표준 URL 지정

manycodes 2023. 10. 3. 11:05
반응형

WordPress Post에서 사용자 지정 표준 URL 지정

저희는 1000개의 웹사이트를 운영하고 있는데, 대부분 특정 스포츠 경기를 위해 만들어 졌습니다.현재 우리는 작가들이 그들 모두에게 독특한 내용에 대해 구체적으로 글을 쓰도록 하고 있습니다.

그러나 우리는 두 개의 주요 사이트를 보유하고 있으며, 이들 주요 사이트에서 최소한의 요건으로 컨텐츠를 신디케이트하기 시작하고자 합니다.

Google의 관점에서 모범 사례를 유지하려면 rel= canonical 태그를 통해 기사의 원본 소스를 지정해야 하지만 현재 플러그인 AIOSEO(All-in-One SEO)는 게시물 또는 페이지 단위로 표준 태그를 지정하는 것을 지원하지 않습니다.

그런 기능을 만드는 방법이 있습니까?

이 코드를 사용해 주실 수 있나요?

function rel_canonical() {
    if ( !is_singular() )
        return;

    global $wp_the_query;
    if ( !$id = $wp_the_query->get_queried_object_id() )
        return;

    $link = get_permalink( $id );
    echo "<link rel='canonical' href='$link' />\n";
}

// A copy of rel_canonical but to allow an override on a custom tag
function rel_canonical_with_custom_tag_override()
{
    if( !is_singular() )
        return;

    global $wp_the_query;
    if( !$id = $wp_the_query->get_queried_object_id() )
        return;

    // check whether the current post has content in the "canonical_url" custom field
    $canonical_url = get_post_meta( $id, 'canonical_url', true );
    if( '' != $canonical_url )
    {
        // trailing slash functions copied from http://core.trac.wordpress.org/attachment/ticket/18660/canonical.6.patch
        $link = user_trailingslashit( trailingslashit( $canonical_url ) );
    }
    else
    {
        $link = get_permalink( $id );
    }
    echo "<link rel='canonical' href='" . esc_url( $link ) . "' />\n";
}

// remove the default WordPress canonical URL function
if( function_exists( 'rel_canonical' ) )
{
    remove_action( 'wp_head', 'rel_canonical' );
}
// replace the default WordPress canonical URL function with your own
add_action( 'wp_head', 'rel_canonical_with_custom_tag_override' );

메타 키워드, 메타 설명 및 메타 제목에 대해서도 추가할 수 있습니다.

// function to insert All-in-One SEO Pack keywords
function keyword_insert() {
   global $post; // VERY important!

   // Retrieve keyword meta data from the SEO Pack
   $seokeywords = stripslashes(get_post_meta($post->ID, '_aioseop_keywords', true));

   // Default keywords in case none are specified for the page
   if (empty($seokeywords)) $seokeywords = "Homestar Runner, Strong Bad, The Cheat";

   // Output the html code
   $seokeyword_block = "<meta name=\"keywords\" content=\"".$seokeywords."\"/>\n";
   echo $seokeyword_block;
}

// function to insert All-in-One SEO Pack description
function description_insert() {
   global $post; // VERY important!

   // Retrieve description meta data from the SEO Pack
   $seodesc = stripslashes(get_post_meta($post->ID, '_aioseop_description', true));

   // Default description in case none is specified for the page
   if (empty($seodesc)) $seodesc = "Oh! I am Homestar, and This is A Website!";

   // Output the html code
   $seodesc_block = "<meta name=\"description\" content=\"".$seodesc."\"/>\n";
   echo $seodesc_block;
}

function title_insert() {
   global $post; // VERY important!

   // Retrieve title meta data from the SEO Pack
   $seotitle = stripslashes(get_post_meta($post->ID, '_aioseop_title', true));

   // Default description in case none is specified for the page
   if (empty($seotitle)) $seotitle = "";

   // Output the html code
   $seotitle_block = "<title>".$seotitle."</title><meta name=\"title\" content=\"".$seotitle."\"/>\n";
   echo $seotitle_block;
}

참고용으로 이 URL을 확인하십시오.

언급URL : https://stackoverflow.com/questions/18710974/specify-custom-canonical-url-in-wordpress-post

반응형