この投稿は、チュートリアルを終えて実務に入る前の人に知っておいて欲しいことをまとめています。
チュートリアルは終えている前提なので、フォルダ構造などの説明は省いています。
デザイナーではなくエンジニアがさわるなら、このくらいは知ってほしいという温度感です。そのため、デザイン修正ではなく機能修正・追加を目的としています。
社内メンバー宛なので偏りがあるかもしれないですが、みなさまの役にも経てば幸いです。
ショートコードの追加
ショートコードとは、本文中で使える機能のことです。
例えば、 [affiliate amazon="B00337XTSM"]
と書いたら、B00337XTSM
の商品へのリンクと、amazon画像が出てくる みたいな機能を付与することができます。
ショートコードはwp-content/themes/(theme名)
配下にある functions.php
に記載します。
[affiliate amazon="B00337XTSM"] と書いたら、B00337XTSMの商品へのリンクと、amazon画像が出てくる例
function affiliate($atts) {
extract(shortcode_atts(array(
'amazon' => '',
), $atts));
$amazon_html = "";
if (!empty($amazon)) {
$amazon_html .= '<a class="affiliate-btn" href="http://amazon.jp/dp/'.$amazon.'/?tag=xxxx" target="_blank">';
$amazon_html .= '<img src="https://images-fe.ssl-images-amazon.com/images/G/09/associates/buttons/assocbtn_orange_amazon1.png"/>';
$amazon_html .= '</a>';
}
return $amazon_html;
}
add_shortcode('affiliate', 'affiliate');
プラグインの追加
プラグインとは、機能の集まりのことです。
wordpressの管理画面から他の人が作ったものをインストールもできますが、自作もできます。
プラグインの実態は wp-content/plugins
配下のフォルダおよびファイルです。
詳しい書き方は、他の人のプラグインを覗き見しながら学んでください。
add_action/do_actionとは
add_actionとdo_actionは一体です。自分がadd_actionで定義したものが、プラグインやwordpress本体で定義されたdo_actionで実行されます。
add_actionという名前の通り、追加でこの関数も実行したい!ときに使います。
login画面のfooterにhello
と表示する例
do_action('login_footer');
add_action('login_footer', 'echo_hello');
function echo_hello() {
echo "hello";
}
add_filter/apply_filtersとは
add_filterとapply_filtersも一体です。自分がadd_filterで定義したものが、プラグインやwordpress本体で定義されたapply_filterで実行されます。
add_filterという名前の通り、関数の途中で、挙動を少し修正したい(オプションを付与したい)などのときに使います。
titleにサイト名を追加する例
$title = apply_filters( 'wp_title', $title, $sep, $seplocation );
add_filter( 'wp_title', 'add_sitename_to_title', 10, 3 );
function add_sitename_to_title($title, $sep, $seplocation) {
$title .= get_bloginfo( 'name' );
return $title;
}
最後に
既存のwordpress、pluginを変更したければwordpressフォルダのルートで
grep -r "\(apply_filters\|do_action\)" *
とすると、apply_filtersとdo_actionの一覧が得られるので、どこをカスタマイズできるかがわかります。
Let's enjoy with wordpress!
[初心者向け] 実務開始の前に知っておきたいシリーズ
[初心者向け] 実務開始の前に知っておきたいSpreadSheetのこと
[初心者向け] 実務開始の前に知っておきたいAnsibleのこと
[初心者向け] 実務開始の前に知っておきたいGoogleAnalyticsのこと
[初心者向け] 実務開始の前に知っておきたいRailsのこと