Sponsored Link
サブドメインで運営しているマルチサイトで、
子サイトのサブドメイン名だけ抜き出す方法です。
Sponsored Link
親サイトのURLがドメインの場合
例えば、子サイトのURLが
http://blog.expmple.com/
だったとします。
URLの【blog】だけを抜き出したい時に取得する方法です。
親サイトのIDを取得
get_blog_details(1)
の1は、親サイトのIDを指定します。
恐らくデフォルトで1だと思います。
get_blog_detailsは、サイトIDを指定することにより、
マルチサイトの情報を引き出すことができます。
get_blog_details(1)
をvar_dumpで引き出した内容です。
object(stdClass)#3418 (15) { ["blog_id"]=> string(1) "1" ["site_id"]=> string(1) "1" ["domain"]=> string(17) "eternal-tears.com" ["path"]=> string(1) "/" ["registered"]=> string(19) "2010-06-29 14:33:41" ["last_updated"]=> string(19) "2012-01-18 07:46:06" ["public"]=> string(1) "1" ["archived"]=> string(1) "0" ["mature"]=> string(1) "0" ["spam"]=> string(1) "0" ["deleted"]=> string(1) "0" ["lang_id"]=> string(1) "0" ["blogname"]=> string(15) "Eternal-tears+*" ["siteurl"]=> string(28) "http://www.eternal-tears.com" ["post_count"]=> string(3) "154" }
$child_domain_details -> domain
で、サブドメイン.ドメインを取得することができます。
トップドメインを削る
このままでは、ドメインが邪魔になるので、
str_replace
で置換します。
$top_domain->domain
で親サイトのドメインを取得出来ます。
サブドメインとドメインの間のコンマ(.)も取らなければならないので、
".".$top_domain -> domain
と記述します。
最終的なソース
<?php global $blog_id; $top_domain = get_blog_details(1); $child_domain_details = get_blog_details($blog_id); $child_domain =str_replace(".".$top_domain -> domain, "", $child_domain_details -> domain); echo $child_domain; ?>
親サイトをwwwなどのサブドメインで運営している場合
もしwwwなどが付いている場合は、
$top_domainの時点で、置換してあげます。
$top_domain_only = str_replace("www.","",$top_domain -> domain);
最終的なソースは、
<?php global $blog_id; $top_domain = get_blog_details(1); $top_domain_only = str_replace("www.","",$top_domain -> domain); $child_domain_details = get_blog_details($blog_id); $child_domain =str_replace(".".$top_domain_only, "", $child_domain_details -> domain); echo $child_domain; ?>