wordpressの学習

やりたいこと別インデックス

テンプレートファイル構成

テーマによっては異なるphpが含まれている。テーマのディレクトリにファイルをアップロードすることで
新たにテーマを作ることが可能。

.../wp-content/themes/twenty●●●/の中に入っているファイル
ページ名 役割 備考
index.php トップページ header.php、footer.php、sidebar.phpなどを読み込む、ベースとなるファイル
single.php 個別(単体)の記事(投稿)ページ header.php、footer.php、sidebar.phpなどを読み込む、ベースとなるファイル
header.php ヘッダー部分
footer.php フッター部分
sidebar.php サイドバー部分 主にウィジェットを配置するファイル
search.php サイドバー部分 検索エリア
comments.php 個別(単体)の記事(投稿)ページのコメント欄 single.phpから呼び出される
page.php 固定ページのテンプレート
front-page.php 固定ページをトップページにした場合などのテンプレート
home.php トップページ index.phpより優先度が高い。
これを使うとindex.phpは呼び出されない。
header.php、footer.php、sidebar.phpなどを読み込む、ベースとなるファイル
function.php テーマフォルダ内で使う関数をまとめて定義しておく場所 ここにアクセスして関数を実行して、各ファイルで表示する
category.php カテゴリーごとの記事一覧など

初期設定

やりたいこと 概要 備考
フッターに出力されている「Wordpress.org」へのリンクを削除する .../wp-content/themes/テーマ名(例:twentyfourteen)/footer.phpをいじる。
固定ページをフロントページにする 1:固定ページの作成
2:フロントページのウィジェット設定
パーマリンクの設定をする wordpressにとってどんなリンクが最適か

ウィジェット

 
やりたいこと 概要 備考
ウィジットとは ウィジェットとは、主にサイトのサイドバーを簡単に編集できるようにブロック単位にした便利な機能のこと。
テンプレートによって異なるが、ウィジェットで編集できるのはサイドバーだけではなく、
フッターや記事下のCTAもウィジェットで設定できるようになっているテンプレートもある。
RSSをサイドバーに設置する
ウィジェットを自作する function.phpに定義して、sidebar.phpに出力する ウィジェットとウィジェットアイテムの違いに注意
ウィジェットアイテムを自作する

ワードプレス関数

テーマページファイル内への出力
関数名 役割 備考
get_header(); ヘッダーファイルheader.phpを呼び出す
get_footer(); フッターファイルfooter.phpを呼び出す
get_sidebar(); サイドバーファイルsidebar.phpを呼び出す
get_sidebar('front'); サイドバーファイルsidebar-front.phpを呼び出す 引数に記述した文字列がsidebar-○○○.phpの形で呼び出される
wp_title("区切り文字" , true , "right"); titleを出力する
include(); ファイルの読み込み
get_template_part(" " , " "); その他自作のファイル...phpを呼び出す get_template_part("loop" , "index");なら
loop-index.phpを呼び出す。
loop-index.phpがなければloop.phpを呼び出す
get_template_directory_url(); 使用中のテーマファイルディレクトリのurlを出力 http://...com/wp-content/themes/テーマ名
get_post_format() get_template_part( ‘content’, get_post_format() ); content.phpを呼び出す
_e('Nothing Found', 'twentytwelve'); 'Nothing Found'という文字列をtwentytwelveの翻訳ファイルによって翻訳する
bloginfo("url"); ブログのトップページurlを出力
home_url() ブログのトップページurlを取得 出力にはechoが必要
bloginfo("title"); ブログのタイトルを出力
bloginfo("description"); ブログの説明文を出力
bloginfo("template_url"); 使用中のテンプレートのurlを出力 http://...com/wp-content/themes/テーマ名
bloginfo("template_directory"); 使用中のテーマファイルディレクトリのurlを出力 http://...com/wp-content/themes/テーマ名
get_bloginfo();
wp_get_current_user(); 現在ログインしているユーザーの情報を取得する $user = wp_get_current_user();
echo $user->display_name; でユーザー名出力
wp_login_url(); ログインページへのリンクを取得 出力にはechoが必要
wp_logout_url(); ログアウトページへのリンクを取得 出力にはechoが必要
include(TEMPLATEPATH . '/info.php'); info.phpを出力する TEMPLATEPATH .は.../wp-content/themes/twenty●●●/を指す
$wpdb->get_results(" SELECT FROM WHERE AND... "); データベースからデータを取得
get_permalink($変数->ID) リンクを取得してスラッグ名に変換する 出力にはechoが必要
フック(アクションフック・フィルターフック)
関数名 役割 備考
add_action('アクション名' , '関数名'); wp_head(ヘッダー部分を出力する)などの動作に紐づけて関数を実行する アクション一覧
add_filter('フィルター名' , '関数名'); the_title(投稿タイトルを出力する)など、
動作のうちテキスト出力に関するものに紐づけて関数を実行し、
テキスト部分の一部を置換する(HTMLタグを追加・削除など)
フィルター一覧
主にループ内で
関数名 役割 備考
the_post(); 個別(単体)の記事(投稿)ページを出力
the_title('前の文字列' , '後の文字列' , true ); 個別(単体)の記事(投稿)ページのタイトルを出力
the_content(); 個別(単体)の記事(投稿)ページの本文を出力
the_excerpt(); 個別(単体)の記事(投稿)ページの抜粋を出力
the_category(); 個別(単体)の記事(投稿)ページのカテゴリーを出力
the_permalink(); 個別(単体)の記事(投稿)ページのリンクを出力
the_date(); 個別(単体)の記事(投稿)ページの投稿日時を出力
the_time(); 個別(単体)の記事(投稿)ページの投稿日時を出力
have_posts(); 個別(単体)記事(投稿)があるかどうか求める
in_category('wordpress'); 投稿が'wordpress'というカテゴリーに属しているか求める
has_tag('wordpress'); 投稿が'wordpress'というタグに属しているか求める。
has_exerpt(); 投稿に抜粋があるかどうか求める
comments_open(); 投稿がコメントを受け付けているかどうか求める
pings_open(); 投稿がトラックバックを受け付けているかどうか求める
現在出力中のページを主にif文で判定する
関数名 役割 備考
is_home(); ブログのトップページ ユーザーが現在出力しているページを求める。
is_front_page(); ブログのトップページ ユーザーが現在出力しているページを求める。
is_single(); 個別(単体)記事(投稿)ページ ユーザーが現在出力しているページがsingle.phpかを求める。
is_page(); 固定ページ ユーザーが現在出力しているページがpage.phpかを求める。
is_category(); アーカイブページ ユーザーが現在出力しているページがarchive.phpかを求める。
is_user_logged_in(); ユーザーがログインしているかどうかを求める ユーザーが現在出力しているページでログインしているかを求める。
URL、パスを呼び出す
関数名 役割 備考
plugins_url('addfavicon/favicon.ico' , '__FILE__') プラグインフォルダまでのパスを呼び出す ...com/my_wp_testsite/wp-content/plugins/addfavicon/favicon.ico
エスケープ
関数名 役割 備考
esc_attr(); HTMLタグを取り除く
esc_html(); < > & ” ‘をエンティティ化する。<を&lt;に >を&gt;に HTMLテキストとして出力したいとき
ウィジェット
関数名 役割 備考
function 関数名(){
    register_sidebar( array(
        'name'          => 'ユーザーログイン', // 管理画面で表示する名前
        'id'            => 'logIn', // ウィジェットID
        'description'   => 'ユーザーログイン', // 管理画面に表示する説明
        'before_widgit' => '', // ウィジェットの前の文字列
        'after_widgit'  => '',  // ウィジェットの後の文字列
        'before_title'  => '', // タイトルの前の文字列
        'after_title'   => '', // タイトルの後の文字列
        ));
}
ウィジェットを定義する functions.phpに記述
add_action('widgets_init' , '関数名'); 関数をウィジェットとして登録する widgets_initはアクションフック名
functions.phpに記述
is_active_sidebar('ウィジェットID'); ウィジェットIDがあるかどうかを求める。 主にsidebar.phpに記述
dynamic_sidebar('ウィジェットID'); register_sidebar();で指定したウィジェットを出力 主にsidebar.phpに記述
カスタム投稿
関数名 役割 備考
function 関数名(){
    register_post_type( ' bookreview ' ,array(
        ' labels ' => array( ' name ' => ' 書評 '), // 管理画面のメニュー表示名
        ' public ' => true, // 管理画面に表示するか
        ' menu_position ' => 6, // サイドバーのどこに表示するか
        ' supports ' => array( ' title ' , ' editor ' , ' custom-fields '), // 編集画面で表示する項目
    ));
}
    
関数をカスタム投稿タイプとして定義する functions.phpに記述
add_action(' init ' , ' 関数名 ' , 1); カスタム投稿を登録する 第三引数の1は、デフォルト優先順位0である投稿、固定ページに次ぐ
functions.phpに記述
post_type_exists( ' ラベル名 ' ) カスタム投稿タイプがあるかどうか
カテゴリーの作成   
関数名 役割 備考
get_cat_ID(' お知らせ '); 「お知らせ」というカテゴリーのIDを取得する
        get_posts(' ');
        パラメーター
        numberposts=n // n件読み込む。省略で5件。-1だと全て。
        offset=n // 先頭からn件を除外。0だと除外なし。
        category=ID // 投稿が属するIDを指定。省略でカテゴリーに関係なし。
        orderby=キー // キーで並べ替えて投稿を読み込む
        order=順序 // ASCで昇順、DESCで降順

        キー
        date // 投稿日時
        modified // 更新日時
        title // タイトルのabc順
        auther // 著者のID順
        name // スラッグのabc順
        
投稿を取り出す
setup_postdata(); 投稿が複数ページに渡っている場合の初期化をする

グローバルオブジェクト

変数名 内容 備考
$wp_query 今読み込まれている投稿に関する情報 プロパティ:ID post_title post_content post_author post_date post_modified post_stetus
メソッド:get_queried_object() get_the_category() get_category_link()
$posts 読み込まれている投稿群
$page 処理中のページ
$wpdb データベース
$comment 今処理中のコメント
$id 今処理中のオブジェクトのid

データベース接続

ワードプレスに含まれるデータベーステーブル
投稿記事のタイトルを取り出す