site_url

워드프레스의 site_url 필터는 워드프레스가 생성하는 사이트 주소(URL)를 동적으로 변경하거나 수정할 수 있게 해주는 강력한 후크로, 테마나 플러그인 개발 시 사이트 URL이 필요한 곳에 커스텀 로직을 적용하여 URL 경로를 조작하거나, 다중 사이트 환경에서 특정 조건에 따라 URL을 다르게 반환하는 등의 용도로 사용됩니다. 이 필터는 기본적으로 get_site_url() 함수 호출 시 적용되며, add_filter('site_url', 'your_function_name', 10, 4) 형태로 사용해 자신의 함수를 연결하면, 반환되는 URL 값에 영향을 줄 수 있습니다. 

site_url 필터의 주요 특징

  • 작동 방식: 워드프레스 코어에서 site_url() 함수를 호출하여 URL을 가져올 때 실행됩니다.
  • 매개변수: 첫 번째 매개변수로는 현재 URL 문자열이 전달되며, 사용자는 이 값을 수정하여 반환할 수 있습니다.
  • 사용 예시:
    • 관리자 영역에서 URL 변경: 특정 조건(예: 관리자 페이지 여부)에 따라 관리자 URL을 다른 경로로 반환할 수 있습니다.
    • URL 리디렉션: 특정 페이지나 조건에서 다른 URL로 리디렉션할 때 사용될 수 있습니다.
    • 다중 사이트 설정: 서브디렉토리 설치 환경에서 도메인 변경 없이 URL 구조를 조절할 수 있습니다. 
add_filter( 'site_url', 'custom_site_url_filter', 10, 2 );

function custom_site_url_filter( $url, $path ) {
    // 만약 관리자 페이지라면 특정 URL로 변경 (예: HTTPS 적용)
    if ( is_admin() ) {
        return str_replace( 'http://', 'https://', $url );
    }
    // 그 외의 경우 원래 URL 반환
    return $url;
}