WPの勉強

functions.php
ユーザーエージェントを取得
ユーザーエージェントを利用してスマホとタブレットで呼び出すものを変えている
// ユーザーエージェントを取得
$ua = $_SERVER['HTTP_USER_AGENT'];
ヘッダーにRSSコード表示
RSSコードとはサイトの更新情報をユーザーに通知するための機能
add_theme_support( 'automatic-feed-links' );
add_theme_support()
add_theme_support()はWordPressテーマがサポートしている機能を有効にするための関数
タイトル関数実装
// 自動的に<title>タグを生成する機能を有効にしている
add_theme_support( 'title-tag' );
タイトルを動的に変更するための関数
is_home()、is_front_page()、is_page()、is_single()などの条件分岐を使って、ページやカテゴリ、ータグなどに対応したタイトルを生成している
trim() 関数
文字列の先頭および末尾にある空白文字を取り除く
pre_get_document_title
ページの<title>タグの内容を変更するために使用されるフィルターフック
タイトルが表示される前のタイミングで実行される
jQueryの読み込み制御
WPはデフォルトでjQueryを組み込んでいるが、テーマやプラグインで独自のバージョンを使用したい場合、登録を解除して新たに登録し直す
wp_deregister_script()
WPで登録されたスクリプト(JSファイル)を登録解除するための関数
wp_register_script()
WPで新しいスクリプトを登録するための関数
wp_enqueue_script()
WPでスクリプトを特定のページに追加するための関数
CSSの読み込み
JSの読み込み
投稿画面にオリジナルのスタイルを適用
テーマが提供するスタイルを投稿エディタにも適用し、エディタ内での見た目と実際にサイト上に表示される見た目を同じにする
add_theme_support()
テーマが新しい機能や機能のサポートを追加するための関数
// エディタがカスタムスタイルを読み込むようになる
add_theme_support('editor-styles');
add_editor_style()
テーマでエディタ用のスタイルシートを追加するための関数
after_setup_theme
セットアップされた直後に実行する
管理画面(ビジュアルエディタ)にオリジナルのクラスを適用
get_theme_mod()
テーマモッドは、テーマの設定やオプションをカスタマイズするための値を保持する
// h2_style という名前のテーマモッドが存在すればその値を取得、存在しない場合はデフォルト値として 'default_value' を使用
$style1 = get_theme_mod( 'h2_style', 'default_value' );

サイドバーにウィジェットがセットされているかどうかの確認
sanitize_title
文字列をURLにとって安全(URLセーフ)な形式に変換するための関数
URLにおいて特別な意味のある文字をサーバに与えると危険
// $titleをURLセーフな形式に変換
$title = sanitize_title( $title );
wp_registered_sidebars
サイドバー(ウィジェットエリア)が登録された情報を格納するグローバル変数
wp_get_sidebars_widgets()
サイドバーに配置されたウィジェットの情報を取得
// ウィジェットの情報を取得
$sidebar_widgets = wp_get_sidebars_widgets();
カテゴリー投稿数のタグカスタマイズ
カテゴリーごとの投稿数を表示するためのフィルターを追加
wp_list_categoriesがHTMLを生成
カテゴリーごとの投稿数を特定の形式に変更
正規表現を使って</a>の前にカテゴリーの投稿数が表示されている場合、<span>タグで囲む
カテゴリーのリストが表示されるときにカテゴリーの投稿数がspanタグで囲まれるようになり、デザインの変更がしやすくなる
wp_list_categories
カテゴリーリストを生成するための関数
アーカイブ投稿数のタグカスタマイズ
さっきのカテゴリーとやってること、流れは同じ
get_archives_link
アーカイブリンクを生成するための関数
オリジナルパーツ読み込み
テンプレートを分割したものをここで読み込んでいる
get_template_part
別のテンプレートファイルを呼び出すための関数
// カスタムウィジェット用のテンプレートファイルを取得
get_template_part( 'include/custom-widget' );
テキストウィジェットでショートコード読み込み
テキストウィジェットにショートコードをそのまま入れることはデフォルトではできない
widget_textフィルターを使用することでテキストウィジェットにもショートコードが使えるようになる
ウィジェット
register_sidebar
register_sidebar( array(
'name' => 'サイドバー',
'id' => 'sidebar',
'before_widget' => '<div id="%1$s" class="widget %2$s">',
'after_widget' => '</div>',
'before_title' => '<div class="widgettitle ef">',
'after_title' => '</div>',
) );
- name : 管理画面で表示する名前
- id : ウィジェットエリアのID
- before_widget : ウィジェットの開始部分に挿入されるHTML
- after_widget : ウィジェットの終了部分に挿入されるHTML
- before_title : ウィジェットタイトルの開始部分に挿入されるHTML
- after_title : ウィジェットタイトルの終了部分に挿入されるHTML

カスタムカテゴリーのタイトル取得
カテゴリーのIDを取得
get_query_var()
catはカテゴリーを表すクエリ変数
// 現在のカテゴリーのIDを取得
get_query_var('cat')
カテゴリー情報を取得
get_category()
// カテゴリーの情報を取得
$cat_class = get_category($t_id);
カテゴリーのオプションを取得
get_option()
// カテゴリーのオプションを取得
$cat_option = get_option($t_id);
取得したタイトルをエスケープする
esc_html()
特殊文字やタグを無効化してセキュリティの強度を上げる
return esc_html($category_title);
カスタムカテゴリーのコンテンツ取得
タイトル取得とほぼ同様の手順
カスタムメニュー対応
add_theme_support()
テーマがサポートする機能を追加や更新するための関数
カスタムメニューの登録
register_nav_menus()
カスタムメニューをどこに置くかを登録するための関数
サイトドメインを取得
admin_url()
管理画面のURLを取得
preg_match()
正規表現を使用して文字列を検索する
oEmbedを無効にする設定
oEmbedは外部コンテンツを埋め込む仕組み
embed_oembed_discover
oEmbedディスカバリー(oEmbedを利用できるURLを自動的に探す機能)を制御するためのフィルターフック