サポート » 使い方全般 » ネットワーク子ブログのデフォルトのカテゴリや投稿タグ

  • 解決済 Shinichi Nishikawa

    (@shinichin)


    こんにちは。

    ネットワーク(サブドメイン)で構築しているのですが、新しく登録されたブログにデフォルトで”カテゴリー”や”投稿タグ”を設定したいのですがやり方が分かりません。

    現在、YD Network-wide Optionsというプラグインを使って、

    1. デフォルトの設定を持たせたブログをひとつ作る
    2. そのデフォルト設定ブログの設定を、他の子ブログにも反映させる

    というようなことを行っています。

    ただ、上記のプラグインには、子ブログにカテゴリやタグを予め設定しておくことができません。コアファイルの編集でもよいので、なんらかの方法があれば教えてくださいませ。

    よろしくお願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター jim912

    (@jim912)

    ShinichiNさん、こんにちは。

    デフォルトでカテゴリーやタグを設定しておきたい場合は、プラグイン等でwp_install_defaultsを定義しておくことで実現可能です。

    詳しくは、WordPressのマルチサイト利用時に新規サイト作成時の設定・初期データを変更するにまとめてありますので、ご覧下さい。

    ありがとうございます!
    さっそくやってみて無事やりたいことができました。

    感謝ですm(_)m。

    下記はご参考までにですが、やったことです。

    jim912さんのブログ記事の中で、僕がやりたかったのは、wp_install_defaultsをプラグインで定義しておくということでした。

    その一部でデフォルトのカテゴリを定義する箇所があり、それを複製することでタグもデフォルトで設置することができました。そのコードは以下です。

    // Default category
    $cat_name = '日記';
    /* translators: Default category slug */
    $cat_slug = 'diary';
    
    if ( global_terms_enabled() ) {
    	$cat_id = $wpdb->get_var( $wpdb->prepare( "SELECT cat_ID FROM {$wpdb->sitecategories} WHERE category_nicename = %s", $cat_slug ) );
    	if ( $cat_id == null ) {
    		$wpdb->insert( $wpdb->sitecategories, array('cat_ID' => 0, 'cat_name' => $cat_name, 'category_nicename' => $cat_slug, 'last_updated' => current_time('mysql', true)) );
    		$cat_id = $wpdb->insert_id;
    	}
    	update_option('default_category', $cat_id);
    } else {
    	$cat_id = 1;
    }
    
    $wpdb->insert( $wpdb->terms, array('term_id' => $cat_id, 'name' => $cat_name, 'slug' => $cat_slug, 'term_group' => 0) );
    $wpdb->insert( $wpdb->term_taxonomy, array('term_id' => $cat_id, 'taxonomy' => 'category', 'description' => '', 'parent' => 0, 'count' => 1));
    $cat_tt_id = $wpdb->insert_id;
    
    // デフォルトのタグ
    $my_tag_name = 'サンプル';
    $my_tag_slug = 'sample';
    $my_tag_id = 2;
    
    $wpdb->insert( $wpdb->terms, array('term_id' => $my_tag_id, 'name' => $my_tag_name, 'slug' => $my_tag_slug, 'term_group' => 0) );
    $wpdb->insert( $wpdb->term_taxonomy, array('term_id' => $my_tag_id, 'taxonomy' => 'post_tag', 'description' => 'この記事は公開コンテンツです。', 'parent' => 0, 'count' => 0));

    $wpdbについて調べたり、phpMyAdminを参照しつつ、勉強になりました。

    *それと、jim912さんのブログ記事にあったschema.php内のデフォルトを変更できる関数もすごく役立ちそうですね。(僕の場合、使っているプラグインと置き換えたかったのですが、上記プラグインの場合、他のプラグインの設定(たとえばakismetなどの)も引き継げるようになっているので、今回は見送りましたが)

    また、なにかありましたらよろしくお願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「ネットワーク子ブログのデフォルトのカテゴリや投稿タグ」には新たに返信することはできません。