programing

다른 URL로 리디렉션하는 WordPress 페이지 만들기

golfzon 2023. 4. 4. 22:39
반응형

다른 URL로 리디렉션하는 WordPress 페이지 만들기

새로운 WordPress 페이지를 만들고 싶었습니다.이 페이지는 다른 사이트로의 링크입니다.목표는 페이지가 내 페이지 목록에 표시되도록 하는 것이지만 실제로 웹 사용자를 대상 URL로 보내는 것입니다.

예를 들어, "내 사진"을 표시하지만 실제로는 Flickr로 리디렉션하는 페이지를 포함하려고 합니다.

이것을 실현하는 한 가지 방법은 커스텀 템플릿 페이지를 PHP의 리다이렉트 명령과 함께 사용하는 것이라고 생각합니다만, 유감스럽게도 저는 PHP의 초보자이기 때문에 이 방법을 잘 모릅니다.

이 두 가지 방법은 모두 템플릿 파일을 편집하여 수행해야 합니다.

첫 번째 방법은 원하는 위치에 HTML 링크를 내비게이션에 추가하는 것입니다.

두 번째(그리고 당신이 찾고 있는 것)는 새로운 페이지 템플릿을 만드는 것입니다.테마/템플릿 디렉토리에 새로운 .php 파일을 작성할 수 있다면 그리 어렵지 않습니다.다음과 같은 코드가 필요합니다.

<?php /*  
Template Name: Page Redirect
*/ 

header('Location: http://www.nameofnewsite.com');
exit();

?>

여기서 template name은 설정 대상이며 헤더 함수의 url은 사용자를 지정하는 새로운 URL입니다.위의 코드를 필요에 맞게 수정한 후 활성 테마 폴더에 있는 php 파일에 템플릿 이름으로 저장합니다.따라서 템플릿의 이름을 "Page Redirect"로 남겨두면 php 파일의 이름을 page-redirect.php로 지정합니다.

저장 후 WordPress 백엔드에 로그인하여 새 페이지를 만듭니다.원하는 경우 제목과 내용을 본문에 추가할 수 있지만, 중요한 점은 오른쪽에는 사용할 페이지 템플릿을 선택할 수 있는 드롭다운 옵션이 있어야 하며 기본값은 먼저 표시됩니다.이 드롭다운 목록에 사용할 새 템플릿 파일의 이름이 있어야 합니다.새 템플릿을 선택하고 페이지를 게시하면 골든 상태가 됩니다.

또한 본문 편집기 아래에 있는 사용자 정의 필드 섹션을 사용하여 동적으로 이 작업을 수행할 수도 있습니다.관심있으시면 말씀해주세요. 제가 새로운 응답으로 그 코드를 붙여드릴 수 있습니다.

이러한 문제는 대부분의 경우 서버 계층에서 가장 잘 해결된다는 것을 알게 되었습니다.리디렉션 규칙을 지정할 수 있는 .htaccess 파일에 액세스할 수 있습니까?이 경우:

RedirectPermanent /path/to/page http://uri.com

이 리다이렉트에서는 Flickr 페이지(예를 들어)가 오래된 페이지의 영구 URI임을 나타내는 "301 Moved Permanently" 응답도 제공됩니다.

이것이 불가능할 경우 해당 페이지마다 커스텀 페이지 템플릿을 생성하여 페이지 템플릿 상단에 다음 PHP 코드를 추가할 수 있습니다(실제로 템플릿에 필요한 것은 이것뿐입니다).

header('Location: http://uri.com, true, 301');

PHP 헤더에 대한 자세한 정보.

또는 필터를 사용합니다.

WordPress 블로그에 필요한 이름으로 빈 페이지를 만듭니다.post_id를 적어 둡니다.그런 다음 퍼머링크를 변경하는 필터를 만듭니다.

add_filter('get_the_permalink','my_permalink_redirect');
function my_permalink_redirect($permalink) {
    global $post;
    if ($post->ID == your_post_id_here) {
        $permalink = 'http://new-url.com/pagename';
    }
    return $permalink;
}

이렇게 하면 URL이 페이지에 올바르게 표시됩니다.재미있는 리다이렉트는 필요 없습니다.

이 작업을 많이 수행해야 하는 경우 커스텀 포스트메타 필드를 사용하여 "offsite_url" 등의 포스트메타 값을 정의하는 것을 고려해 필요에 따라 페이지를 작성할 수 있습니다."post_url" 값을 입력한 후 위와 같은 필터를 사용하여 post_id를 확인하는 대신 필요한 postmeta가 있는지 확인하고 필요에 따라 permalink를 변경합니다.

Wordpress 템플릿은 잘 모르지만, WP에 의해 브라우저로 헤더가 전송되고 나서 당신의 템플릿이 로딩될 것이라고 생각합니다.그 때문에, 다음의 일반적인 리다이렉션 방법이 사용됩니다.

header("Location: new_url");

작동하지 않습니다.WP가 작업을 수행하기 전에 템플릿을 통해 헤더를 강제로 전송하는 방법이 없는 한 다음과 같은 Javascript를 사용해야 합니다.

<script language="javascript" type="text/javascript">
document.location = "new_url";
</script>

그것을 섹션에 넣으면 페이지가 로드될 때 실행됩니다.이 방법은 순간적이지 않으며 Javascript를 사용할 수 없는 사용자도 사용할 수 없습니다.

"raw" 플러그인 https://wordpress.org/plugins/raw-html/을 사용하면 다음과 같이 간단합니다.

[raw]
<script>
window.location = "http://www.site.com/new_location";
</script>
[/raw]

여기에는 다음 3가지 방법이 있습니다.

  1. 404.php
  2. 워드프레스 플러그인을 사용합니다.
  3. <고객명>님의 <고객명>의 <고객명>님의 <고객명>의 편집>.htaccessfilename을 클릭합니다.

자세한 튜토리얼은 http://bornvirtual.com/wordpress/redirect-404-error-in-wordpress/906/에서 보실 수 있습니다.

코드를 편집하지 않고 몇 초 안에 이 작업을 수행할 수 있는 플러그인을 찾았습니다.

https://wordpress.org/plugins/quick-pagepost-redirect-plugin/

http://premium.wpmudev.org/blog/wordpress-link-title-external-url/에서 찾았습니다.

워드프레스에서는 워드프레스 플러그인을 사용하여 리다이렉션을 작성하는 훨씬 간단한 방법이 있습니다.여기서 플러그인 리다이렉션을 통해 더 나은 방법을 찾을 수 있습니다. 또한 이 사이트에서도 플러그 인을 통해 워드프레스로 URL 리다이렉트 생성

(이것은 투고용이지 페이지가 아닙니다.원칙은 동일합니다.퍼머링크 훅은 정확한 사용 예에 따라 다릅니다.)

같은 문제를 안고 있기 때문에, 보다 편리한 방법을 개발했습니다.이 방법을 사용하면, 재편집할 필요가 없습니다.functions.php항상 또는 서버 설정을 만지작거립니다(둘 다 마음에 들지 않습니다).

TLTR

필요한 실제 WP Permalink 함수에 필터를 추가할 수 있습니다(저에게는post_link아카이브/카테고리 리스트에 그 페이지 에일리어스가 필요했기 때문에) 및 에일리어스 투고 자체에서 참조된 ID를 동적으로 읽습니다.

이 게시물은 가명이므로 내용은 필요 없습니다.

번째 단계는 에일리어스 투고를 열고 참조된 투고의 ID를 콘텐츠로 하는 것입니다.

여기에 이미지 설명 입력

다음으로, 다음을 엽니다.functions.php추가:

function prefix_filter_post_permalink($url, $post) {
    // if the content of the post to get the permalink for is just a number...
    if (is_numeric($post->post_content)) {
        // instead, return the permalink for the post that has this ID
        return get_the_permalink((int)$post->post_content);
    }
    return $url;
}
add_filter('post_link', 'prefix_filter_post_permalink', 10, 2 );

바로 그겁니다.

이제 에일리어스 투고를 작성해야 할 때마다 참조된 투고의 ID를 콘텐츠로 넣으면 됩니다.

이렇게 하면 퍼멀링크가 바뀔 뿐입니다.제목, 발췌 등이 있는 그대로 표시되며, 이는 일반적으로 바람직한 것입니다.고객의 요구에 따라 더 많은 조정을 하는 것은 고객님의 몫입니다.또, 이 서비스의 '숫자인가' 부분은PHP이상과는 거리가 먼 코드입니다만, 요점을 읽을 수 있도록 하기 위해서입니다.

언급URL : https://stackoverflow.com/questions/1698797/create-wordpress-page-that-redirects-to-another-url

반응형