pre code

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

add_filter('the_content','my_content');

function my_content($content){

	$target_id	= 9260; //作成した投稿のID
	$post_id	= absint( get_the_ID() );
	$mail_address = ''; //メールアドレス	
	if( $target_id == $post_id ) {
		
		if( ! has_post_format('chat',$post_id) ) {
			
			return $content;
		}
		/**
		 * フォーム
		 */
		$form = '<div><form method="post" action="'.get_permalink( $post_id ).'"> 
		<input type="text" name="my_chat" id="my_chat">
		'. wp_nonce_field('oreore_chat', 'my_chat_new', true, false ).
		'<input type="submit" name="submit" id="submit" value="発言"></form></div>';
		
		/**
		 * 固定メッセージ
		 */		
		$description = '<div data-title="解説" data-mod="aside" data-skin>
			<h3>使い方</h3>
			<p class="sentence">まずテキストフィールドに名前を書いて、コロンで区切って、メッセージを書き、発言ボタンを押します</p>
			<p class="example">入力例:<input type="text" value="太郎: おはようございます" disabled /></p>
			</div>';

		$first_chat = $content. PHP_EOL.PHP_EOL."<p>管理人: ようこそええ加減なチャットサンプルへ</p>".PHP_EOL.PHP_EOL;
		$saved_result = get_post_meta( $post_id, 'chat', true );	// チャットを取得
		/**
		 * リセット
		 */		
		if( mb_strlen( $saved_result ) > 100 ) {
			
			delete_post_meta( $post_id, 'chat' );	// チャットの量が増えたら、リセット
		}

		/**
		 * アップデート
		 */

		if( $_POST && wp_verify_nonce( $_POST[ 'my_chat_new' ], 'oreore_chat')  ) {
			
			$new_val = filter_input(INPUT_POST, "my_chat", FILTER_SANITIZE_SPECIAL_CHARS);	//$_POSTフィールドの取得

			$new_val = trim(str_replace( array(':',':'), ':', $new_val ));					// コロンは、全角でも許可
			
			$new_val = str_replace(array('[',']',),array('[',']',), $new_val );	//禁止文字列チェック
			
			$new_val .= PHP_EOL.'<hr style="margin:0;" /><span class="time">'.current_time('Y-m-d H i').'</span>';
			
			if( ! preg_match( '!'.$new_val.'!', $saved_result )								//二重投稿チェック
				&& preg_match('!(.+):(.+)!', $new_val ) ) {									//入力パターンチェック
				if( isset( $mail_address ) && ! empty( $mail_address ) ) {
					
					$mail_body =  strip_tags($new_val);
					$mail_body = str_replace(':',"\n", $mail_body );
					$mail_body = $mail_body.PHP_EOL.PHP_EOL.get_permalink( $post_id );
						
					wp_mail( $mail_address, 'チャット', $mail_body );			//メールを送信
				}
				update_post_meta($post_id,'chat',$saved_result. wpautop($new_val) );		//フィールドのアップデート
			}
		}
				
		return $first_chat.get_post_meta( $post_id,'chat', true ).PHP_EOL.PHP_EOL. $form. $description;
	}
	return $content;
}

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

[emulsion_relate_posts]