init( ); } /* * initializing */ function init( ){ global $ps_multi_languages; if ( !isset( $ps_multi_languages ) ) return; //対応する多国語 $this->_items = $ps_multi_languages->multilingual; //国旗画像ディレクトリ $this->flags_dir = $ps_multi_languages->flags_dir; //デフォルトの言語 $this->WPLANGKEY = $ps_multi_languages->WPLANGKEY; //デフォルトの一覧の多国語表示個数 $this->max_count = $ps_multi_languages->max_count; $this->Start( ); } /* *プラグインの機能実行をスタート */ function Start(){ if ( is_admin( ) ): //多国語のメタボックスを生成する add_action ('add_meta_boxes' , array(&$this,'insert_multilingual_custom_field') ); /* edit_post : 投稿記事またはページが更新・編集された際に実行する。これには、コメントが追加・更新された場合(投稿またはページのコメント数が更新される)も含む。 */ add_action('edit_post' , array(&$this,'edit_meta_value'), 10, 2 ); /* save_post : インポート機能の利用、記事・ページ編集フォームの利用、XMLRPCでの投稿、メールでの投稿のうちいずれかの方法で記事・ページが作成・更新された際に実行する。 */ add_action( 'save_post' , array( &$this, 'edit_meta_value'), 10, 2 ); /* publish_post : 投稿記事が公開された際、または公開済みの記事の情報が編集された際に実行する。 */ add_action( 'publish_post' , array( &$this, 'edit_meta_value') ); /* transition_post_status : 記事・ページが公開された際、またはステータスが「公開」に変更された場合に実行する。 */ add_action( 'transition_post_status' , array( &$this, 'edit_meta_value') ); //投稿を新規と編集する場合、JSファイルをCSSファイルを読み込みする add_action( 'admin_print_styles-post.php' , array( &$this, 'add_admin_print_styles' ) ); add_action( 'admin_print_styles-post-new.php' , array( &$this, 'add_admin_print_styles' ) ); //投稿、ページ、カスタム投稿の一覧多国語表示 add_filter( 'manage_posts_columns' , array(&$this,'add_multilingual_posts_columns' ) ); add_filter( 'manage_page_posts_columns' , array(&$this,'add_multilingual_posts_columns' )); add_action( 'manage_posts_custom_column' , array(&$this,'add_multilingual_scompt_custom_column'), 10, 2); add_action( 'manage_page_posts_custom_column' , array(&$this,'add_multilingual_scompt_custom_column'), 10, 2); endif; } /** * ファンクション名:add_multilingual_meta_boxes * 機能概要:各多国語のメターボックスを追加する * 作成:プライム・ストラテジー株式会社 王 濱 * 変更: * @param String $post_type * @param Object $post * @return */ function insert_multilingual_custom_field( $post_type = 'post', $post = NULL ){ add_meta_box('insert_multilingual_custom_field', "Multilingual Settings", array(&$this,'add_multilingual_meta_boxes'), $post_type, 'normal', 'high'); } /** * ファンクション名:add_admin_print_styles * 機能概要:JSとCSSを読み込み * 作成:プライム・ストラテジー株式会社 王 濱 * 変更: * @param * @return */ function add_admin_print_styles( ){ //wp_enqueue_script( 'prefix-js-tinyMCEID' , plugins_url('js/tinyMCEID.js', __FILE__) ); wp_enqueue_script( 'prefix-js-' . strtolower(__CLASS__) , plugins_url('js/edit-post-prefix-js.js', __FILE__) ); wp_enqueue_style( 'prefix-style-' . strtolower(__CLASS__), plugins_url('css/edit-post-prefix-style.css', __FILE__) ); } /** * ファンクション名: * 機能概要:一覧項目のカスタマイズ * 作成:プライム・ストラテジー株式会社 王 濱 * 変更: * @param resource * @param int * @param string * @return */ function add_multilingual_posts_columns( $columns ){ $columns['title'] = $columns['title'] . ' '; foreach ( $this->_items as $key => $val ){ $count = $count + 1 ; if ( $count > $this->max_count ){ break; } $columns['post_title_'.$key] = __('Title').' '; } return $columns; } /** * ファンクション名:add_multilingual_scompt_custom_column * 機能概要:一覧項目のカスタマイズ * 作成:プライム・ストラテジー株式会社 王 濱 * 変更: * @param resource * @param int * @param string * @return */ function add_multilingual_scompt_custom_column( $column_name, $id ){ foreach ( $this->_items as $key => $val ){ if( $column_name == 'post_title_' . $key ) { $multilingual = get_post_meta( $id , 'post_title_' . $key , true ); if ( $multilingual ){ $edit_link = get_edit_post_link( $id ); echo ''.$multilingual.''; } } } } /** * ファンクション名:add_multilingual_meta_boxes * 機能概要:各多国語のメターボックスを追加する * 作成:プライム・ストラテジー株式会社 王 濱 * 変更: * @param Object $post * @return */ function add_multilingual_meta_boxes( $post ){ // $this->add_multilingual_postbox_title( ); foreach ( $this->_items as $key => $val ): //hrのHTMLタグを生成する $this->add_multilingual_hr($key); //TitleのHTMLタグを生成する $this->add_multilingual_title($key,$post); //ContentのHTMLタグを生成する $this->add_multilingual_content($key,$post ); //ExcerptのHTMLタグを生成する $this->add_multilingual_excerpt($key,$post); endforeach; } /** * ファンクション名:add_multilingual_postbox_title * 機能概要:各多国語のメターボックスのタイトル * 作成:プライム・ストラテジー株式会社 王 濱 * 変更: * @param * @return */ function add_multilingual_postbox_title( ){ echo '
Sections Setting
'; $flag_icon_path = $this->flags_dir . $this->WPLANGKEY . '.png'; if ( $this->url_exists( $flag_icon )): $flag_icon = $flag_icon_path; endif; $hidden = ''; $hidden .= ''; echo $hidden; } /** * ファンクション名:add_multilingual_hr * 機能概要:各多国語の設定セクション表題 * 作成:プライム・ストラテジー株式会社 王 濱 * 変更: * @param String $lang * @return */ function add_multilingual_hr( $lang ){ $lang_name = $this->_items[$lang]; $flag_icon = $this->flags_dir . $lang . '.png'; if ( $this->url_exists( $flag_icon )): $flag_icon = '  '; endif; echo '
Setting Information for ' . $lang_name . $flag_icon . '
'; } /** * ファンクション名:add_multilingual_title * 機能概要:各多国語のタイトルの表示と設定 * 作成:プライム・ストラテジー株式会社 王 濱 * 変更: * @param String $lang * @param Object $post * @return */ function add_multilingual_title( $lang , $post = null ){ $Title = __( 'Title' ); $post_ml_title = get_post_meta($post->ID,'post_title_' . $lang , true ); $inside = <<< EOF

{$this->_items[$lang]} {$Title}

Please enter the title.

EOF; echo $inside; } /** * ファンクション名:add_multilingual_content * 機能概要:各多国語の本文内容の表示と設定 * 作成:プライム・ストラテジー株式会社 王 濱 * 変更: * @param String $lang * @param Object $post * @return */ function add_multilingual_content( $lang, $post = null ){ $defaults = array( 'tabindex' => 1, 'wpautop' => true, 'media_buttons' => true, 'textarea_name' => 'content', 'textarea_rows' => get_option('default_post_edit_rows', 10), // rows="..." 'tabindex' => '', 'editor_css' => '', // intended for extra styles for both visual and HTML editors buttons, needs to include the