WPMU Multidomain
2009-07-24 in Programavimas
Kiekvieną kartą atsinaujinus WPMU, turiu perbėgti per kodą ir padaryti papildomus pakeitimus, kad jis veiktų su skirtingomis domenų galūnėmis. Pakeitimų nėra daug, tačiau turiu viltį, kad juos įtraukus į oficialią WPMU versiją ateityje Blogr.lt atnaujinimas supaprastės.
Taigi šio įrašo tikslas ir bus informuoti apie gan paprastą WPMU modifikaciją.
1. Failas: /wp-includes/wpmu-functions.php. Sukuriame naują funkciją pačioje failo pabaigoje
function get_sites ($site_id = “) {
global $wpdb;if (!$site_id):
return $wpdb->get_results(„SELECT * FROM $wpdb->site WHERE public = ‘1’ ORDER BY domain ASC“, ARRAY_A);
else:
return $wpdb->get_row(„SELECT * FROM $wpdb->site WHERE id = $site_id“, ARRAY_A);endif;
}
2. Tas pats failas, surandame funkciją „wpmu_validate_blog_signup“ ir iškart po „global $wpdb, $domain, $base;“ naujoje eilutėje pridedame:
$domain = get_sites($_POST[‘site_id’]);
$domain = $domain[‘domain’];
3. Dabar redaguosime registracijos formą, kuri yra faile wp-signup.php
echo ‘<input id=“blogname“ maxlength=“50″ name=“blogname“ type=“text“ value=“‘.$blogname.'“ />’;
print ‘<select name=“site_id“>’;
foreach(get_sites() as $site):
print ‘<option selected=“selected“ value=“‘.$site[‘id’].'“>’.$site[‘domain’].'</option>’;
endforeach;
print ‘</select>’;
4. Kad tvarkingai veiktų prisijungimo funkcionalumas visuose subdomenuose, faile wp-config.php pridedam eilutę
define(‘COOKIE_DOMAIN’, ‘.’ . $_SERVER[‘HTTP_HOST’]);
5. Domenų atsiradimas select’e labai paprastas, tiesiog duomenų bazės lentelėje wp_site pridedame pageidaujamą domeną.
6. Nepamištame domeno DNS nustatumuose sukurti A įrašą *.domenas.lt