사이트를 서핑하거나 사이트 주소를 동적으로 설정할 때 유지되는 두 개 이상의 병렬 (하위) TLD?


10

도메인 아래에서 독일 NGO 사이트를 운영하고 있습니다 sub.example.org.
최근에 sub.example.ch스위스 분사로 추가 했습니다.

모두 (서브) 도메인이 동일한 물리적 위치를 가리키는하는 WP는 (설치 하지 멀티 사이트).

예 sub.example.ch/register를 들어에서 찾은 내용을 올바르게 표시하도록 설정했습니다 sub.example.org/register.

그러나 스위스 방문자가 일반 사이트 링크를 사용하여 사이트를 서핑하는 경우 일반 설정에 정의 된대로 "워드 프레스 주소"(또는 "사이트 주소")를 사용하기 때문에 불가피하게 "일반"도메인이됩니다. 을 통해 get_home_url또는 get_site_url()(또는 그보다 덜 깊은 get_bloginfo()등가).

이상적으로 는 방문자가 사이트에 도달하는 데 사용했던 도메인에서 계속 서핑을하고 싶습니다. 따라서 언급 한 함수의 반환 값을 어떻게 든 필터링해야한다고 가정합니다. 내가 아는 한 필터는 존재하지 않습니다.

  1. 누구든지 이런 종류의 경험과 괜찮은 해결책을 가지고 있습니까?

  2. 이건 어리석은 생각일까요? 처음에 보내야합니까?

답변:


9

호스트에 대한 옵션 요청을 필터링 할 수 있습니다.

당신의 wp-config.php 아래 줄에 ...

require_once ABSPATH . 'wp-settings.php';

… 다음 줄을 추가하십시오.

add_filter( 'pre_option_home', 'set_current_host' );
add_filter( 'pre_option_siteurl', 'set_current_host' );

function set_current_host()
{
    return 'http://' . $_SERVER['HTTP_HOST'];
}

add_filter()이전에 사용할 수 없으므로 해당 코드를에 보관해야합니다 wp-config.php. 부작용이 있는지 또는 효과가 없는지 모르겠습니다. 일어나서는 안되지만 철저히 테스트하십시오.


나는 그것을 철저히 테스트 할 것입니다. 지금.
— Johannes Pille

4
12 시간 후 : 예외없이 작동합니다. 그 가치가 나올 것이라는 $_SERVER['HTTP_HOST']것은 매우 간단합니다. 그것은 저의 접근 방식이었을 것입니다. 이것이 답변되는 동안 bloginfo_url플러그인 에서 필터 를 사용하려고했습니다 . 일을하지 않았다 . 그러나 구성 파일에 필터링을 넣으려면 며칠 동안 고민 한 후에 시도했을 것입니다. 이 솔루션의 결과는 나의 기대를 뛰어 넘었습니다. 링크는 잘 해결 될뿐만 아니라 로그인 자격 증명도 제대로 작동하며 백엔드도 질식하지 않습니다! 신난다!
— Johannes Pille

1
두 (하위) 도메인 모두 동일한 물리적 위치 인 WP 설치 (멀티 사이트 아님)를 가리 킵니다. 그렇게하려면 호스팅 서비스에 로그인해야합니다. 하위 도메인, 도메인을 만들 때 문서 루트를 지정해야합니다. 여기에서 WP가 설치된 기본 도메인과 동일한 경로를 선택하십시오. 그런 다음 코드를 추가하십시오. 완벽하게 작업하고 SEO (정규 태그 및 대체 태그)에 대해 생각해보십시오
— Romain
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.