Open3

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_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を自動的に探す機能)を制御するためのフィルターフック