Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
5
Help us understand the problem. What is going on with this article?
@vankobe

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

More than 3 years have passed since last update.

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

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

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

ショートコードの追加

ショートコードとは、本文中で使える機能のことです。
例えば、 [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のこと

5
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
vankobe
リンクアンドモチベーションで、モチベーションクラウドを作っています。 現環境はAWS+Rails+Vueです。 個人的に業務改善やマーケティングも好きなのでSpreadSheetやRedash、BigQueryも実は結構投稿してます
lmi-inc
リンクアンドモチベーションはこれまでコンサルティング事業で培ったノウハウをテクノロジー(モチベーションクラウド)にのせる第2創業期です。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
5
Help us understand the problem. What is going on with this article?