İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Subdomain Plugin Hatasi

wWhat

0
İyinet Üyesi
Katılım
4 Ekim 2008
Mesajlar
30
Reaction score
0
Elimde wordpress subdomain eklentisi var; kategori linklerini otomatik olarak subdomain haline getiriyor. Eklentiyi kurduktan sonra subdomain kismi gayet guzel calisiyor, ama kategorinin sayfalarina gitmiyor mesela;

kategori "ananas" kategorisinde geziyorum
ananas.blogum.com

onceki yazilara tikladigimda, subdomain'i siliyor ve direk olarak blogum.com/page/2 adresine gidiyor. belki sadece link problemidir dedim ananas.blogum.com/page/2/ adresini manuel olarak denedim, o zaman da normal sanki kategorinin degilde komple blog'un ikinci sayfasiymis gibi gosteriyor. Plugin tamamen rewrite uzerine dayali ve benimde kafam bu kisimda cok kolay karisiyor ne yazikki. Yardimci olabilirseniz cok sevinirim..


PHP:
<?php
class subSubdomain{
    var $slug;
    var $field;
    function  __construct() {
        $this->field ='category_name';
    }

    function getSubdomain(){
        $url = getenv( 'HTTP_HOST' );
	$domain = explode( ".", $url );
        $this->slug = $domain[0];
        return get_category_by_slug($this->slug);
    }

    function getRewriteRules(){
        $rules = array();
	$rules["feed/(feed|rdf|rss|rss2|atom)/?$"] = "index.php?" . $this->field . "=" . $this->slug . "&feed=\$matches[1]";
	$rules["(feed|rdf|rss|rss2|atom)/?$"] = "index.php?" . $this->field . "=" . $this->slug . "&feed=\$matches[1]";
	$rules["page/?([0-9]{1,})/?$"] = "index.php?" . $this->field . "=" . $this->slug . "&paged=\$matches[1]";
	$rules["$"] = "index.php?" . $this->field . "=" . $this->slug;
        return $rules;
    }
}

class initPlugin extends subSubdomain{
    function __construct(){
        parent::__construct();
    }
    function addActions() {
		add_action( 'init', 'wps_init', 2 );
	}
    function addFilters(){
     //   add_filter( 'rewrite_rules_array', 'wps_rewrite_rules' );
        add_filter( 'category_rewrite_rules', 'sub_category_rewrite_rules' );
        add_filter( 'post_rewrite_rules', 'sub_post_rewrite_rules' );

        add_filter( 'category_link', 'sub_category_link', 10, 2 );
        add_filter( 'post_link', 'sub_post_link', 10, 2 );
    }
}

$obj_sub = new initPlugin;
$obj_sub->addActions();
$obj_sub->addFilters();

function wps_init () {
	if (!is_admin()) {
		// Stuff changed in WP 2.8
		if (function_exists('set_transient')) {
			set_transient('rewrite_rules', "");
			update_option('rewrite_rules', "");
		} else {
			update_option('rewrite_rules', "");
		}
	}
}

add_filter( 'root_rewrite_rules', 'wps_root_rewrite_rules' );
function wps_root_rewrite_rules( $rules ) {
        //$rules = array();
return $rules;
}
function sub_category_rewrite_rules($rules){
    global $obj_sub;
  if($domain = $obj_sub->getSubdomain()){
        $rules = $obj_sub->getRewriteRules();
  }
  return $rules;
}

function sub_post_rewrite_rules($rules){
$rules = array ();
    $rules['[^/]+/attachment/([^/]+)/?$']='index.php?attachment=$matches[1]';
    $rules['[^/]+/attachment/([^/]+)/trackback/?$'] ='index.php?attachment=$matches[1]&tb=1';
    $rules['[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$'] ='index.php?attachment=$matches[1]&feed=$matches[2]';
    $rules['[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$'] ='index.php?attachment=$matches[1]&feed=$matches[2]';
    $rules['[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$'] ='index.php?attachment=$matches[1]&cpage=$matches[2]';
    $rules['([^/]+)/trackback/?$'] ='index.php?name=$matches[1]&tb=1';
    $rules['([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$'] = 'index.php?name=$matches[1]&feed=$matches[2]';
    $rules['([^/]+)/(feed|rdf|rss|rss2|atom)/?$'] ='index.php?name=$matches[1]&feed=$matches[2]';
    $rules['([^/]+)/page/?([0-9]{1,})/?$'] ='index.php?name=$matches[1]&paged=$matches[2]';
    $rules['([^/]+)/comment-page-([0-9]{1,})/?$'] ='index.php?name=$matches[1]&cpage=$matches[2]';
    $rules['([^/]+)(/[0-9]+)?/?$']='index.php?name=$matches[1]&page=$matches[2]';
    $rules['[^/]+/([^/]+)/?$'] ='index.php?attachment=$matches[1]';
    $rules['[^/]+/([^/]+)/trackback/?$'] ='index.php?attachment=$matches[1]&tb=1';
    $rules['[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$'] ='index.php?attachment=$matches[1]&feed=$matches[2]';
    $rules['[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$'] = 'index.php?attachment=$matches[1]&feed=$matches[2]';
    $rules['[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$']= 'index.php?attachment=$matches[1]&cpage=$matches[2]';
    return $rules;
}

function sub_category_link( $link, $term_id ) {
    $link = str_replace('www.','',$link);
    $link = preg_replace('/(?<=http\:\/\/)([a-z0-9_\-\.]+)\/category(.*)\/([a-z0-9_\-]+)/','$3.$1', $link);
    return $link;
}

function sub_post_link( $link, $id ){
   $link = str_replace('www.','',$link);
   $link = preg_replace('/(?<=http\:\/\/)([a-z0-9_\-\.]+)\/(.*)\/([a-z0-9\-\_]+)\/([a-z0-9\-\_]+)/','$3.$1/$4', $link);
   $link = preg_replace('/(?<=http\:\/\/)([a-z0-9_\-\.]+)\/([a-z0-9\-\_]+)\/([a-z0-9\-\_]+)/','$2.$1/$3', $link);
   return $link;
}
?>
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst