3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WordPressAdvent Calendar 2017

Day 11

[初心者向け] 実務開始の前に知っておきたいWordPressのこと

Last updated at Posted at 2017-12-10

この投稿は、チュートリアルを終えて実務に入る前の人に知っておいて欲しいことをまとめています。

チュートリアルは終えている前提なので、フォルダ構造などの説明は省いています。
デザイナーではなくエンジニアがさわるなら、このくらいは知ってほしいという温度感です。そのため、デザイン修正ではなく機能修正・追加を目的としています。

社内メンバー宛なので偏りがあるかもしれないですが、みなさまの役にも経てば幸いです。

ショートコードの追加

ショートコードとは、本文中で使える機能のことです。
例えば、 [affiliate amazon="B00337XTSM"] と書いたら、B00337XTSMの商品へのリンクと、amazon画像が出てくる みたいな機能を付与することができます。
ショートコードはwp-content/themes/(theme名)配下にある functions.php に記載します。

[affiliate amazon="B00337XTSM"] と書いたら、B00337XTSMの商品へのリンクと、amazon画像が出てくる例

wp-content/themes/(theme名)/function.php
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と表示する例

wp-login.php
do_action('login_footer');
wp-content/themes/(theme名)/function.php
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にサイト名を追加する例

wp-includes/general-template.php
$title = apply_filters( 'wp_title', $title, $sep, $seplocation );
wp-content/themes/(theme名)/functions.php
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のこと

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?