アイキャッチ : DALL:E3
今は昔、
WordPressにはテーマを使用すれば機能や表示を変えることができます。選んだテーマでは,自分の思うようになっていないことが殆どでしょう。そんな時は,あるファイルにコードを追加して機能追加や表示を好みのものに変えることもできます.
さて,何を知らなければならないでしょうか.
WordPressのテーマ: Twenty Twentyまでは,「content.php」が存在していました. でも,どうやらTwenty Twenty Oneからは,「content.php」が存在しないようです.
最近のテーマ(新しいWordPress)では,関数をフックして機能を追加するのがトレンドらしい.従って,以下の「関わるファイルたち」に示したphpファイルが存在しないテーマが最近のテーマのトレンド構造となっている・・・らいしい.
フックのタイミング
- the_title()が実行されたタイミング
- wp_head()が実行されたタイミング
- 記事が公開されたタイミング
関わるファイルたち
どのファイルの内容を編集すればよいか.WordPressでは,固定ページ,投稿ページがあります.また,投稿ページは,カテゴリとタグで分類できるようになっています.固定ベージを表示させる場合は,page.phpというファイルが使用されます.投稿ページを表示させる場合は,singular.phpというファイルが使用されます.カテゴリ別に表示させる場合,content.phpというファイルが使用されます.タグ別に表示させる場合は,archive.phpというファイルが使用されます.以上の構造は,テーマによって異なることもあるようですが,一般的なテンプレートファイルたちです.
| 表示させるページ | 処理をしてくれるファイル |
| 固定ページ | page.php |
| 投稿ページ | singular.php |
| カテゴリ別の投稿ページ | content.php |
| タグ別の投稿ページ | archive.php |
| 以上以外 | index.php |
WordPressで子テーマを作成する方法(詳細ガイド)-kinsta
https://kinsta.com/jp/blog/wordpress-child-theme/
指示役のファイル
前述のファイルたちを指定する役割を持っているファイルが,function.phpです.
最近のテーマでも,function.phpは健在です.実は,ここにフックのコードを書いてあげるのが,以前のテーマも含めて共通解です.
WordPressで子テーマを作成する方法(詳細ガイド)- kinsta
https://kinsta.com/jp/blog/wordpress-child-theme/#create
最近のテーマでは
最近のテーマでは,content.phpやpage.phpなどのファイルを存在せず,phpの機能であるフック(hook)を使って,関数を実行させるようです.ということは,自作の関数も同様にフックを使うのがスマートです.
例えば,headerにgoogle analyticsなどのコードを自分のサイトのページ/投稿に埋め込むことも,このフックを使用するしかなないと言うことです.
- 以下の2つのフックを使う.
- アクションフック (action hook)
- 登録: add_action(‘アクションフック名’, ‘フックされる関数名’), 複数行のコードで複数定義が可能.
- 実行: do_action(‘アクションフック名’)
- アクション
- 記事の公開というアクション
- 記事の更新というアクション
- などなど
- フィルターフック (filter hook) : add_filter()
フックコード
WordPressには,既に”wp_head”というアクションフック名が定義されています.それに便乗する形でフックコードを書きます.
アクションフックコードの例
以下に示したコード例は,アクションフックの説明です.
(1) add_actionにより,wp_headのアクションフック名のフックを呼び出します.その時,google_analyticsという関数をフックしてもらいます.
(2) function google _analytics()には,実行したいコードを書きます.これで,WordPressが,通常運転中でwp_headを実行した時,google_analyticsも実行されることになります.
(3)もしも,どこかの任意のタイミングがあって,そこでフックを実行したいときには,do_actionを使用します.
add_action('wp_head','google_analytics');
function google_analytics() {
if( !is_user_logged_in() ) { //ユーザーがログインしていない場合に実行する
?>
<script>
・
・
</script>
<?php
}
}
フィルターフックの例
フィルターフックの例は,また今度^^)
WordPressのテーマTwenty Twenty-TwoにGoogle AdSenseの自動広告を設置してみた話し
https://www.5cho-me.com/archives/193076
WordPress のフック(Hooks)
https://www.webdesignleaves.com/pr/wp/wp_func_hook.html
参考文献
WordPressのthe_categoryをフィルターフックする (2013)
https://worklog.be/archives/2032
多様なスタイルバリエーションのデフォルトテーマ「Twenty Twenty-Three(2023年)」- デフォルトテーマ –
https://st7-wp.com/twenty-twenty-three/
コミュニティから生まれたWordPressの新デフォルトテーマ「Twenty Twenty-Three」- kinsta –
https://kinsta.com/jp/blog/twenty-twenty-three-theme/
編集履歴
2023/11/11, Mr.HARIKIRI
2023/11/12, アクションフックの例の文言整備
![[WP] WordPressの機能/表示を追加/変更するには,どのファイルにコードを書くの? 今は昔![2023/11/11]](https://harikiri.diskstation.me/wp-content/uploads/2023/11/wordpress_coding.jpg)
![[アニメで語学] 暴食のベルセルク より 七つの大罪[2023/11/09]](https://harikiri.diskstation.me/wp-content/uploads/2023/11/f866ddfa052727c8f57aa78d55d1d597.jpg)
![[RT2600ac] SwitchBotミニハブがRT2600acの2.4G Wi-Fiに接続できない [2023/11/05]](https://harikiri.diskstation.me/wp-content/uploads/2023/11/wi-fi.jpg)
![[WordPress] DOMが多いと,PageSpeed Insightsが言うんだけど。 どうすんのよ? → 新しいテーマとこれまでの遺産コードを捨てる!![2023/11/12]](https://harikiri.diskstation.me/wp-content/uploads/2023/10/coding-html-in-future.jpg)

![[Let’s Note] 3Dゲームの動きが突然カクカクになった – 22H2にアップデートしてからだ! ついでにIntel Driver & Support Assistantもインストール[2023/10/27]](https://harikiri.diskstation.me/wp-content/uploads/2021/02/80F3D755-3019-49C6-BDAE-47D137C87826.jpeg)




![[Life] 青春の一コマだった,「谷村新司」さん/「もんたよしのり」さん,「大橋純子」さん,「八代亜紀」さん、共にあった時代のアーティスト達[2024/01/10]](https://harikiri.diskstation.me/wp-content/uploads/2023/10/3b218459cf00ecd883c2ca1e43d62c4b.jpg)
![[用語] UNA; unlocked nucleic acid [health] [2023/10/14]](https://harikiri.diskstation.me/wp-content/uploads/2020/04/3B0F6B20-C23B-4F1D-B1A1-3A84BAB8DADD.jpeg)
![[IT] DAS、NASそしてSANとは? ~ITの専門家になる~[2023/10/08]](https://harikiri.diskstation.me/wp-content/uploads/2019/12/94BD0C6D-30B1-42B0-8AF5-D7659A9CFE80.jpeg)
![[Let’s Note] もしかしてWindows 11のupdate (copilot pre)が原因で指紋認証が?!,ドライバ?, BIOS? 修理前にSynology ActivBackup for Bisunessしかないか.[2023/10/14]](https://harikiri.diskstation.me/wp-content/uploads/2023/10/AciiveBackup-ICON.jpg)





![[アニメ] 葬送のフリーレン ; Frieren: Beyond Journey’s End (2023/09~2024/03, 全28話) [2024/03/23]](https://harikiri.diskstation.me/wp-content/uploads/2023/10/IMG_3615.jpeg)