この記事はブロックされています。続きを読みたい方はログインをして下さい。会員ではない方は新規会員登録をして下さい。


ワードプレス×ツイッターによる無料でできるオートブログ 第九回目 自動フォロースクリプトをワードプレスで定期実行する 子テーマを作る

前回はツイッターのフォロワーを自動でフォロー返しをするスクリプトを作りましたが、今回はそれをワードプレスで自動的に実行させる仕組みを作ります。
ワードプレスの擬似cronを使うのですが、これはアクションフックという機能を使って実現します。

アクションフックなのですが、要するにワードプレスに追加で機能を付け加える仕組みだと思って下さい。
ただし、この追加の仕組みをワードプレスに組み込む時に問題になるのが、テーマやワードプレスのアップデートです。
既に経験済みの人もいるかもしれませんが、せっかくテーマを編集してもアップデートがあると上書きされて、書いたものが消えてしまいます。
これを防ぐためにはプラグイン化するか、テーマを子テーマ化して回避します。

「ワードプレス×ツイッターによる無料でできるオートブログ 第五回目 カスタムフィールドの利用」のカスタムフィールドの設定の時には話が複雑になるので説明していませんでしたが、実はこの記述もテーマをアップデートすると消えてしまいます。
なので子テーマに分割して、そちらに記述をする方法を説明していきます。
アクションフックを使う前に子テーマの説明をしなければならないので、シリーズということになります。

ではまず、使っているテーマを調べて下さい。例として「Twenty Thirteen」というテーマを使っているものとします。これを子に対して親テーマと呼びます。

FTPソフトでワードプレスのテーマが格納されているフォルダを開きます。
このようなフォルダ構造になっていると思います。

[note]/ワードプレスフォルダ/wp-content/themes/[/note]

このフォルダの中に「twentythirteen」というフォルダがあると思います。
で、子テーマは必ず「themes」フォルダの中に作ります。つまり、「twentythirteen」の中ではなく、同じ階層に作ります。

名前を分かりやすくするために「twentythirteen2」とします。

[note]/ワードプレスフォルダ/wp-content/themes/twentythirteen2/[/note]

実はフォルダ名はなんでもいいのですが、他のフォルダと将来的に被らないものにしてください。
あと、フォルダにはスペースは入れないで下さい。「-(ハイフン)」はOKです。記号や日本語が入っていると認識しない原因となってしまいます。

フォルダを作ったら、次は絶対必要なファイルであるスタイルシートを作ります。
名前は必ず「style.css」にしてください。中身はテキストエディタで作成します。
テキストエディタは文字コードが「UTF-8」で保存できるものにしてください。そうしないと日本語が文字化けしてしまいます。持っていない人はフリーソフトで色々とあるのでダウンロードしましょう。

▼テキストエディタ – k本的に無料ソフト・フリーソフト

無料で使えるテキストエディタの紹介。

で、ファイルの中身は以下のようにします。コピペして「style.css」という名前でUTF-8で保存して下さい。
(基本的にワードプレスのファイルは全てUTF-8形式で保存するように癖を付けて下さい)

/*
Theme Name: Twenty Thirteen Child
Template: twentythirteen
*/

@import url("../twentythirteen/style.css");

説明をすると「Theme Name」はワードプレスで子テーマとして認識された時に表示されるテーマ名です。これはなんでもOKです。
「Template」は親テーマのフォルダ名を書きます。今回は親テーマとして「twentythirteen」を使っているので、フォルダ名をそのまま記述します。もし違う親テーマだったらここを変更します。
例えば、テーマが「Catch Box」だったら、「catch-box」と記述します。簡単ですね。

基本的にこの記述だけでワードプレスの管理画面のテーマに子テーマが追加されます。
子テーマを選択してテーマを変更して下さい。

子テーマが認識された
子テーマが認識された

(注意点としていろいろとカスタマイズができる親テーマで子テーマにすると、トップビジュアルなどのオプション設定やメニューなどが無効になる場合があります。その場合は最初から設定し直す必要があるので、なるべく早めに親テーマから子テーマを切り離しておきましょう)

因みに「@import url(“../twentythirteen/style.css”);」の説明ですが、これは親テーマのスタイルシートを継承するためのものです。親テーマで定義されているスタイルシートを引き継げるわけですね。

[note]@import url(“../twentythirteen/style.css”);[/note]

これはスタイルシートを使ったことがある人にはお馴染みのインポート機能ですね。
URLには親テーマのスタイルシートのパスを記述します。今回は「twentythirteen」なので「twentythirteen」となっています。URLは子テーマから見たフォルダ構造なので「../」で一階層上を指定します。

早い話が「twentythirteen」以外のテーマの場合は、「twentythirteen」使いたい親テーマのフォルダ名にすればいいわけです。
「style.css」を保存したら子テーマのフォルダにアップロードしましょう。

因みに、スタイルシートの編集は、親テーマの「style.css」を編集するのではなく、子テーマの「style.css」で行います。親テーマの「style.css」は子テーマにある「style.css」に引き継がれて継承されるので、「@import url(“../twentythirteen/style.css”);」よりも下に書いたスタイルシートの記述が適用されます。

例えば、フォントの大きさを変えたい場合は、親テーマのフォントの記述だけをコピーして、子テーマに貼り付け、その値を書き換えると子テーマのスタイルシートの方が後で読み込まれるため優先されます。
また、親テーマにはないスタイルシートを記述すると、当然新規にスタイルが適用されます。

話が逸れました。特に今回はスタイルシートをいじるわけではないので、このくらいにして次はコンテンツ関連のファイルについてです。
各テーマには必ず「functoins.php」というコアファイルがあります。実はワードプレスは「style.css」「functoins.php」たった2つのファイルがあれば動きます。
しかし、それだと「functoins.php」の内容が肥大化してメンテナンス性が悪くなるので、ヘッダー部分やフッター部分、投稿ページといった各レイアウト要素ごとにファイルを分割しています。

で、「content~.php」という名前のファイルは個別記事ページや固定ページ関連のファイルというのが定番です。いじるのは圧倒的にこの「content~」という名前のファイルなので覚えておいて下さい。

で、親テーマにあるファイルというのは基本的にアップデートされると変更され上書きされるものなので、変更されたくないものはどうすればいいかというと、子テーマのフォルダにまったく同じファイルをコピーします。
スタイルシート同様に、親テーマと子テーマで同じファイルがあると子テーマの方が優先される仕組みです。

例えば、個別投稿ページの「content.php」を変更したい場合は、子テーマのこのファイルをコピーして必要な箇所だけ変更してあげれば、テーマのアップデートで影響を受けないのです。
また、新たに関数やアクションフック、アクションフィルターを定義すると、親テーマにはないので上書きされて追加されるという仕組みです。

ただし、「functoins.php」というファイルだけは例外で、このファイルだけはコアなファイルであるため、子テーマにあっても親テーマが優先されます。子テーマ→親テーマの順に読み込まれるので、同じ内容が記述されている場合は、親テーマが優先され結果的になにも変わらないことになります。

今回はアクションフックを追加するので「functoins.php」を編集しなければなりません。アクションフックとアクションフィルターは「functoins.php」に記述することになっているからです。
しかし、ご安心を。親テーマにはないアクションフックを追加するので、上書きされることはありません。新たに機能として追加されます。

説明が長くなりましたが、以下を「functoins.php」に記述して子テーマのフォルダにUTF-8形式で保存してアップロードして下さい。

関連記事