HTMLコード→エンティティ変換【 自作用コード(コピペOK) 】

ショートコードエディター

ページにソースを貼りたい時、文字のエスケープは必須ですよね。

前回、自由にお使い頂ける【 エンティティ変換ツール 】を投稿したのですが、
「もっと使いやすくしたい !」
「違う文字もエンコードしたい !」
なんて事もあるかも??

という事で、コードもアップしておきます^^

こちらのコードは投稿に置けるよう、
エンティティ用のテンプレートを作り、
「 投稿に、ショートコードでテンプレートを呼び出す 」事を想定しています。

もし、お使いになりたい方は自己責任でどうぞm(__)m

自作用コード(コピペOK)

PHPコードとテンプレートの準備

以下のコードで entity.php というテンプレートを作り、style.css と同階層にアップロードしておきます。(同階層にtemplate-parts などのディレクトリを作ってもOK ^^)

<?php 
$page_flag = 0;
$entitycode = $_POST['entitycode'];
if( isset( $_POST[ 'btn_entity' ] )) { $page_flag = 1; }
if( $page_flag === 1 ){ 
	$newcode = str_replace( '&', '&amp;', $entitycode );
	$letter = array( '<', '>', '	', '', '&' );
	$replace = array( '&lt;', '&gt;', '&#009;', '', '&amp;' );
	$newcode = nl2br( str_replace( $letter, $replace, $newcode ));
 } ?>
<div class="entity">
<form method="post">
<?php if( $page_flag === 0 ){  ?>
	<label for="entitycode">CODE</label>
	<textarea id="entitycode" name="entitycode" rows="15" cols="40" placeholder="code を記入します"  required autocomplete='off'><?php if( $page_flag > 0 ){ if( !empty($entitycode)){ echo str_replace( '', '', $entitycode ); }} ?></textarea>
	<input type="submit" name="btn_entity" value="Entity開始">
	<input type="submit" name="btn_reset" value="Reset" class="btn_reset">
<?php  } elseif( $page_flag === 1 ){  ?>
	<label for="newcode">エンティティ済CODE</label>
	<textarea id="newcode" name="newcode" rows="15" cols="40" autocomplete='off'><?php echo strip_tags($newcode); ?></textarea>
	<input type="submit" name="btn_copy" value="Copy" class="btn_copy">
	<input type="submit" name="btn_reset" value="Reset" class="btn_reset">
	<p class="copy_alert">コピー完了</p>
<?php  } ?>
</form>
</div>
  
jQuery(function($) {
	$('.copy_alert').hide();
	$('.btn_copy').on('click', function(){
		$('#newcode').select();
		document.execCommand('copy');
	$('.copy_alert').show().delay(1000).fadeOut(1000);
	});
});

style.css で、textarea、submit、などのスタイルを作っておきます。(テーマ規定値のままでも問題ない場合が多いと思います^^)

p.copy_alert (コピー完了後のコメント)だけは
設置後に様子を見ながらスタイルを当てて下さいね

テンプレートを投稿で使う準備(ショートコード)

entity.php を投稿で呼び出せるようにします。

テンプレートはそのままでは、投稿に呼び出せませんが、shortcode としてなら載せる事が可能になります^^v
そこで、テンプレートを shortcode にするコードを functions.php に書き足します。

function Include_my_php($params = array()) { 
	extract(shortcode_atts(array( 'file' => 'default' ), $params)); 
	ob_start(); 
	include(get_theme_root() . '/' . get_template() .  "/$file.php"); 
	return ob_get_clean(); 
} 
add_shortcode('myphp', 'Include_my_php'); 

テンプレートのショートコード化は、ググれば沢山出てきます。詳しくはお調べ下さいねm(__)m

投稿に呼び出す

最後に、投稿の載せたい位置に[myphp file=’entity’] (.phpは不要) と書けばOK^^

投稿を見ると、エンティティ用の枠が出来ていると思います。

当サイトで利用中のエンティティ用ツール »

※template-parts などのディレクトリを作った場合は [myphp file=’template-parts/entity’]とします。

※表示の都合で[]を全角にしています。ご利用時は半角大括弧に変更してくださいm(__)m

コメント

ご意見ご感想お待ちしてます。

CAPTCHA


ありがとうございます。
コメントは承認後に掲載されます