SalesforceサイトのURLを取得【SiteDetail】

VisualforceコントロールでSalesforceサイトのURLを取得します。
取得したURLは、バリデーションで使用しました。

String name = <siteName>; // name変数にサイト名を格納

// サイトのURL
static String siteUrl {
    get {
        if (siteUrl == null) {
            Id siteId = [SELECT Id FROM Site WHERE Name = :name].Id; // SalesforceサイトのIDを取得
            siteUrl = [SELECT SecureUrl FROM SiteDetail WHERE DurableId = :siteId].SecureUrl; // SalesforceサイトのURLを取得
        }
        return siteUrl;
    }
    set;
}
名前内容
Siteオブジェクト組織と統合される公開Webサイトを表示
Id項目オブジェクトの主キー項目
Name項目APIでサイトを参照する時に使用される名前
SiteDetailオブジェクトSalesforceサイトまたはExperience Cloudサイトの詳細を表示
SecureUrl項目WebサイトのURL
DurableId項目SiteオブジェクトのID