●広告の貼り替えと php インクルード



c. 絶対のお勧め「広告ファイルの インクルード」

イ. 広告を別の場所に保管する

広告は一般公開される public 階層より上の階層にフォルダを作ってまとめて保存します。

下の階層図では「public フォルダ」の中に kokoku_01~kokoku_10 と「kokoku_originalフォルダ」、
そして、「kokoku_original フォルダ」の中に kokoku_01~kokoku_30 を保存。

・「kokokuフォルダ」の kokoku_01~kokoku_10 → 実際に呼び出す kokoku ファイル
・「kokoku_originalフォルダ」の kokoku_01~kokoku_30 → 貼り替え候補ファイル

貼り替えるとき
・「originalフォルダ」の kokoku_01~kokoku_30 の中からファイルを選ぶ
   → 「kokokuフォルダ」の kokoku_01~kokoku_10 に上書き。

広告ファイルの作り方
・HPBで新しい頁を開く → 広告コードや表に商品コードを貼りつけ、
→  名前を付けて保存 → 拡張子 html なら html ファイルになる。拡張子 php なら phpファイルになる。

-階層図-

                                              abcd.jp
                                                 ↓
              「public」       -       「◯◯」             -                「kokoku」
                    ↓                                                                       ↓
「A」-「B」- 「site1」 -「abcd2」    kokoku_01~kokoku_10 -「kokoku_original」
   ↓                       ↓              ↓                                                             ↓
  a.html      「wp_content」  「site2」                                      kokoku_01~kokoku_30
                              ↓             ↓
                       「themes」   「wp_content」
                              ↓             ↓
                        「cocoon」   「themes」
                                              ↓
                                           「cocoon」

・abcd.jp:メインドメイン
・この下にpublic.htmlとその他のフォルダとkokokuフォルダがある。
・public.htmlの下にWord Press_site1のファイルフォルダ「site1」がある。
・「abcd2」はサブドメインのファイルアップロード先フォルダ。
・上図ではここに「site2」フォルダを作り、site2フォルダにWord Pressをインストール。
・通常は「abcd2」にWord Pressをインストールするので「site1」と同じになる。

ロ. HPBでのファイル呼び出し


( ファイル挿入 )

HPBでこれらのファイルを呼び出すのは簡単。

・挿入 → ファイル → その他のファイル → html ファイルの挿入 ( ヘッダー / 頁内部品 )

HPB 編集画面に「挿入された広告ファイル」の位置が表示されるので、どこに貼ってあるのかが分かります。


( phpインクルード )

html は自分の PC の中に家を作る道具。
php はサーバーのコンピューターに対する「こうしなさい」という命令。
Word Pressは「材料と設計図を示して、このような家を作りなさい」というサーバーのコンピューターに対する命令。
だから php 。

しかし、HPBで作った html ファイルの中でもこの php ( サーバーコンピューターに対する命令)が使えます。


・htmlファイルの中でphpを使えるようにする準備 ( Xサーバー / php7.4.4 )

①htaccess編集 → ドメイン → htaccess編集 → 「 AddHandler fcgid-script .html .htm」を追記 → 変更
②php_ini設定 → display_errorsをOFF。その他はそのまま
(インクルードする広告.phpが表示できないときにエラー表示を出さずに広告を表示しない)


・ファイルを読み込むコード

<?php include( __DIR__ . 'kokokuファイルまでのパス'); ?>

上記の階層図の「a.html」から「kokokuフォルダ」の「kokoku_01.php」を呼び出すのなら、

<?php include( __DIR__ . '../../../kokoku/kokoku_01.php'); ?>

html ファイルの「kokoku_01.html」も呼び出せます。.

<?php include( __DIR__ . '../../../kokoku/kokoku_01.html'); ?>

このインクルードコードについてはいろいろなものが紹介されていますが、当方の環境で成功したのは上のコードです。


( HPBでは php インクルードは必要ない )

・HPBでは「ファイル挿入」ができるので、わざわざ「phpインクルード」を使う必要はありません。
・挿入した「phpコード」は HPBの 「html ソース」の場合だけ表示され、編集画面では表示されません。
  そのため、広告が貼ってあるかどうか、どこに貼ってあるかが分かりません。
・当初、HPBで「ファイル挿入」ができることに気付かず、「php インクルード」で苦労しました。

ハ. Word Press での php インクルード

Word Pressでは次のようにします。

① functions.php への追記

・外観 → テーマエディタ → functions.php → 最後の行に追記
・ COCOON では「子テーマ」の functions.php に追記。「親テーマ」はさわらない。
・まずは、普通(?)のタイプ → phpファイル呼び出し①

//phpファイル呼び出し1
function Include_my_php($params = array()) {
    extract(shortcode_atts(array(
        'file' => 'default'
    ), $params));
    ob_start();
    include(get_theme_root() . '/' . get_template() . "/$file.php");
    return ob_get_clean();
}
add_shortcode('my_php', 'Include_my_php');

今度は「呼び出す php ファイルが別の場所にある場合」 → phpファイル呼び出し②

//phpファイル呼び出し2
function Include_my_php($params = array()) {
    extract(shortcode_atts(array(
        'file' => 'default'
    ), $params));
    ob_start();
    include(get_theme_root() . '/' . get_template() . "/指定フォルダー/$file.php");
    return ob_get_clean();
}
add_shortcode('my_php', 'Include_my_php');

・7行目の「指定フォルダ」はphpファイルがあるフォルダ。相対パスで書く。
※参照 → https://bge.jp/wp-shortcode-php_include/

kokoku_01.php を呼び出すショートコードはどらちも次のコード ( 拡張子 php 不要 )
これを広告を呼び出したい場所に貼り付ける( ブロックツールのショートコード )

 [my_php file='kokoku_01'] 

もちろん、このショートコードを貼りつけても、そこにkokoku_01.php は表示されません。
funcrions.php への 追記に kokoku_01.php のある「kokokuフォルダ」までのパスが書いてないからです。

② 「kokokuフォルダ」までの相対パス

ここまではどのサイトでも紹介されていますが、その先の「知りたいこと」がどこにも書いてない。
「指定フォルダ」までの相対パスが説明されていない。
「呼び出しショートコードを挿入した頁」から 「phpファイルを入れたフォルダ」までのパスはどうなるのでしょう。

そもそもWord Pressにば 静的な頁がありません。
あちらこちらから材料を持ってきてブラウザに頁を表示しているだけです。
それでも、「その頁の元になるもの」はどこかの階層に属しているでしょう。
その階層がわからないと、相対パスを指定できず他の場所にあるphpファイルを呼び出せません。

以下を試してみました。

・「public → サイト → wp_content → themes → cocoon 」に kokoku_01.php を直接アップロード
→ 「phpファイル呼び出し①」を functions.php に追記 → kokoku_01 が表示される。

・cocoonの下には「page.php」 があるので、この階層が出発点になるのか?

・この階層から「kokokuフォルダ」までは6段階

・それなら「phpファイル呼び出し②」の7行目は、
「 include(get_theme_root() . ‘/’ . get_template() . “/../../../../../../kokoku/$file.php”); 」
これを functions.php に追記。

・「kokokuフォルダ」の kokoku_01.php を呼び出し → 表示されない。

・「../」を一つ減らして、5段にしたら kokoku_01.php が表示された。

・理屈は分からないが「5段階」であるらしい。

相対パスの出発点・階層は「themes の下にある 階層」のようだ
・インクルードするファイルまでの階層を数える場合は
   「themesの下が出発点」,「themestが1」となる。 ( 推測 )

・結局、上記階層図の場合、functions.php に追記するのは、次の通り。

・phpファイル呼び出し③

//phpファイル呼び出し3
function Include_my_php($params = array()) {
    extract(shortcode_atts(array(
        'file' => 'default'
    ), $params));
    ob_start();
    include(get_theme_root() . '/' . get_template() . "/../../../../../kokoku/$file.php");
    return ob_get_clean();
}
add_shortcode('my_php', 'Include_my_php');

もちろん、kokoku_01.phpを呼び出すコードは同じ、

 [my_php file='kokoku_01'] 
③ html ファイルを呼び出す場合

htmlファイルも呼び出せます。
・上記の2行目,7行目,10行目の「php → html」に変更。

//html ファイル呼び出し
function Include_my_html($params = array()) {
    extract(shortcode_atts(array(
        'file' => 'default'
    ), $params));
    ob_start();
    include(get_theme_root() . '/' . get_template() . "/../../../../../../kokoku/$file.html");
    return ob_get_clean();
}
add_shortcode('my_html', 'Include_my_html');

・ショートコードは「my_html file=’●●●●’]
    kokoku_02.html を呼び出すのなら「「my_html file=’kokoku_02′]


※jpgファイルは呼び出せませんでした

それなら、jpgファイルも呼び出せるのではないかと、2行・7行・10行目の「php → jpg」に変更したらエラーになりました。いすいろ試してみてください。

④ 別の場所にあるファイルを同時に呼び出す場合

( ショートコード名の変更 )

・①,② でショートコードの名前は「my_php」です。これを例えば「my_php2」に変えます。

・2行目,10行目の「my_php → my_php2」に変更。

・ファイルのあるフォルダまでのパスの変更。

( パスの変更 )

・階層図で「kokoku_origianl フォルダの kokoku_01.php」を呼び出すのなら、
「”/../../../../../kokoku/kokoku_original/$file.php”」;

kokokuまでの相対パスは同じ、kokokuフォルダーのなかのkokoku_originalフォルダを指定。

・functions.php への追記は、

//phpファイル呼び出し2
function Include_my_php2($params = array()) {
    extract(shortcode_atts(array(
        'file' => 'default'
    ), $params));
    ob_start();
    include(get_theme_root() . '/' . get_template() . "/../../../../../kokoku/kokoku_original/$file.php");
    return ob_get_clean();
}
add_shortcode('my_php2', 'Include_my_php2');

kokoku_original フォルダの kokoku_01.php を呼び出すコードは、

[my_php2 file='kokoku_01']

( 練習問題 )

上記階層図の「site1」の頁から「Aフォルダ」にある「a.html 」を呼び出す場合、
・呼び出しコード名を「my_html 」にすると
・functions.php に追記する内容は?
・実際の呼び出しコードは?

答えは、⑤の最後

⑤ 注意

サブドメインの場合もアップロード先フォルダが「public.html」になるので同じ
・但し、サブドメインフォルダの中にWord Pressフォルダを作って
ここにWord Pressをインストールした場合は階層が一つ増えて6段階になる。

functions.php への追記で「何かうまくいかなかったようです」警告が出る場合

・サーバーのセキュリティ機能・WAFが原因 → WAF設定 → 「php対策」を「OFF」にする。

・ あとで「WAF-ON」にするので全て「OFF」にしてもよい。

・「反映待ち」表示消える → functions.php への追記 → WAFをON

テーマを変えたら、そのテーマの functions.php に追記


テーマのアップデートがあると、functions.php の追記は消えてしまうので、再度追記

※ COCOON では親テーマと子テーマをインストールして、子テーマを「有効」にする。親テーマは有効にしていなくても、有効となっている子テーマから親テーマが機能する。(らしい)
functions.php への追記は子テーマにする。
アップデートは親テーマに対してなされるので、
アップデートされても子テーマに追記したfunctions.php は消えない。

※ ④ の練習問題の答え

・site1 の 頁の出発階層は themesの下
   ここからAフォルダまでは ①themes → ②wp_content → ③site1 → ④public の 4段階
・htmlファイルの呼び出しだから、2行目,7行目,10行目の「php → html」に変更

答えは次の通り(間違いはご容赦)

//html ファイル呼び出し
function Include_my_html($params = array()) {
    extract(shortcode_atts(array(
        'file' => 'default'
    ), $params));
    ob_start();
    include(get_theme_root() . '/' . get_template() . "/../../../../A/$file.html");
    return ob_get_clean();
}
add_shortcode('my_html', 'Include_my_html');

実際の呼び出しコードは

[my_html file='a']

4. バックアップ

上の「キャパ越えトラブル」でバックアップの必要性を痛感しました。

HPBでは、自分のPCの中に現物があります。
しかし、Word Pressでは材料や設計図はサーバーの中。

設計図は代わりがあるが、材料とくに文章の代わりはない。
細かい推敲を繰り返してきた文章をもう一度書くのは困難。


( FTPツールを使ったバックアップ )

※参考 → https://web-kanji.com/posts/wordpress-backup

バックアップしておかなければならないのは次の四つ。

①テーマ:ホームページのデザイン
②プラグイン:SEO対策や画像圧縮などの拡張機能
③メディア:WordPressにアップロードした画像やPDFなどのデータ
④データベース:ブログ記事や固定ページなどのコンテンツデータ

この三つはWord Pressで作ったサイトの下の階層にある wp-content の中に入っている。
①テーマ→ themes
②プラグイン → plugins
③メディア → uploads

①,②,③はFTPツール ( HPBのファイル転送ツール ) でダウンロード。


④は触れない所にあるので、. Word Pressの機能を使ってダウンロードする。

・管理画面 → ツール → エクスポート → エクスポートする内容を選択→ 「すべてのコンテンツ」
→ 「エクスポートファイルをダウンロード」
→ 〇〇.xml ファイルがPCのダウンロードフォルダにダウンロードされる。→ バックアップフォルダへ移動する。

まだ、3記事を書いただだけなのに、バックアップダウンロードは
フォルダ数 924、ファイル数 6032,合計 95Mb。恐るべしWord Press。


( プラグインを使ったバックアップ )

以上を定期的自動的にやってくれるプラグインもあるとか。

しかし、一応「 FTP ツール」でやれるので、プラグインは後日にしましょう。

選任のための法律知識・

副収入ならバリューコマースのアフリエイト
★Amazon,楽天 対応★
★Yahooショップ,PayPay お勧め★
★Webike,モノタロウ もOK★
★使った商品を紹介★
★まずはバナーを貼りましょう★
アフリエイトについて,広告の貼り方(PHPインクルード) → こちら,    アフリエイト収入と青色申告 → こちら



タイトルとURLをコピーしました