独自のショートコードを作りたい
このサイトでは、独自ユーザーテーブルプラグインを使う時、ユーザーログインフォームやユーザー登録フォームを固定ページに表示させる際、ショートコードを使用しています。
使用例
ここでは、記事コンテンツの中に
[
my_shortcode_tag placeholder_username='例:hogehoge@hogehoge.com']
というショートコードを入れたときに自動的にフォームを表示させることができるショートコードを作ることにする。
<?php
//使用例
class HOGEHOGE {
public function __construct() {
add_shortcode( 'my_shortcode_tag', array( &$this, 'my_custom_shortcode' ));
}
public function my_custom_shortcode( $atts, $content = null, $tag = 'my_shortcode_tag' )
{
/*
まずはショートコードのデータを展開して一部をデフォルトとの値に上書きする
shortcode_atts( $default_arr, $atts )関数では、
送信されてきたパラメーター$attsの中からこの関数内で利用できる変数を$default_arrでフィルターをかけ
かつ、$attsに値が無い場合、$default_arrで設定した値で上書きできる。
今回は placeholder_usernameというパラメーターを使用する
参考:
shortcode_atts( array(
'' => 'ASC',
'orderby' => 'menu_order ID',
'id' => $post->ID,
'itemtag' => 'li',
'icontag' => 'dt',
'captiontag' => 'dd',
'columns' => 3,
'size' => 'thumbnail',
'include' => '',
'exclude' => ''
), $atts);
*/
extract( shortcode_atts( array('placeholder_username' => '' ) ) );
$html =<<<EOI
<form id="wpmop-login-form" name="wpmop-login-form" method="post" action="" _lpchecked="1">
<label for="wpmop_user_name" class="wpmop-label">メールアドレスでログイン</label><br>
<input type="text" class="wpmop-text-field wpmop-username-field" placeholder="{$placeholder_username}" id="wpmop_user_name" value="" size="25" name="wpmop_user_name" ><br>
<input type="password" class="wpmop-text-field wpmop-password-field" id="wpmop_password" value="" size="25" name="wpmop_password"><br>
<input type="submit" class="wpmop-login-form-submit goups-btn" name="wpmop-login" value="ログイン">
</form>
EOI;
return $html;
}
}
解説
今回は、上のサンプルコードに直接解説したので省略。