WordPressをダウンロードすると、wordpressというフォルダが一個手に入ります。
これらが、一番最初にどのように動いているのかを追ってみました。
僕は、https://nskw-style.com/wordpressにこれらのファイル一式を入れています。
そして、WordPress を専用ディレクトリに配置するを参考に、トップページURLをhttps://nskw-style.comに変更しています。
最初に動くphp、ルートのindex.php
https://nskw-style.comには、index.phpが置いてあり、これが読み込まれます。
/** * Front to the WordPress application. This file doesn't do anything, but loads * wp-blog-header.php which does and tells WordPress to load the theme. * WPの入り口です。このファイルは何もしないけど、wp-blog-header.php(テーマ読み込みをさせるファイル)を読み込むよ。 * * @package WordPress */ /** * Tells WordPress to load the WordPress theme and output it. * WordPressにテーマをロードしてね。そして、それをWP_USE_THEMESにtrue定義してね * * @var bool */ define('WP_USE_THEMES', true); /** Loads the WordPress Environment and Template */ require('./wordpress/wp-blog-header.php');
この中にあるphpのコードは2行で、一行目は、
define('WP_USE_THEMES', true);
で、WP_USE_THEMES
(テーマが使われているかの真偽)にtrue
を指定しています。
のちのち、wordpress/wp-includes/template-loader.phpの中で、
もしtrueならURLに応じてsingle.phpなどを表示し、
falseならRSSや検索ロボット、トラックバックだけは動かす、
という指定をするところで使われるみたいです。
*この記事の最下部参照。
2行目は、
require('./wordpress/wp-blog-header.php');
で、wordpressフォルダにある、wp-blog-header.phpへGO!の指令を出しています。
このindex.phpからwp-blog-header.phpへのワンクッションがあることで、https://nskw-style.com/wordpressにWPをインストールしつつ、ブラウザに打ち込むURL的にはhttps://nskw-style.comでOKなように指定できる、ということだと思います。工夫です。
参考:wp-includes/template-loader.phpの中身
/** * Loads the correct template based on the visitor's url * @package WordPress */ if ( defined('WP_USE_THEMES') && WP_USE_THEMES ) // WP_USE_THEMESがtrueなら do_action('template_redirect'); //pluginとか作るときのアクションフックを発行 // Process feeds and trackbacks even if not using themes. // ロボット、フィード、トラバはfalseでも処理する if ( is_robots() ) : do_action('do_robots'); return; elseif ( is_feed() ) : do_feed(); return; elseif ( is_trackback() ) : include( ABSPATH . 'wp-trackback.php' ); return; endif; // WP_USE_THEMESがtrueなら、それぞれのURLに従って正しいファイルを読み込む if ( defined('WP_USE_THEMES') && WP_USE_THEMES ) : $template = false; if ( is_404() && $template = get_404_template() ) : elseif ( is_search() && $template = get_search_template() ) : elseif ( is_tax() && $template = get_taxonomy_template() ) : elseif ( is_front_page() && $template = get_front_page_template() ) : elseif ( is_home() && $template = get_home_template() ) : elseif ( is_attachment() && $template = get_attachment_template() ) : remove_filter('the_content', 'prepend_attachment'); elseif ( is_single() && $template = get_single_template() ) : elseif ( is_page() && $template = get_page_template() ) : elseif ( is_category() && $template = get_category_template() ) : elseif ( is_tag() && $template = get_tag_template() ) : elseif ( is_author() && $template = get_author_template() ) : elseif ( is_date() && $template = get_date_template() ) : elseif ( is_archive() && $template = get_archive_template() ) : elseif ( is_comments_popup() && $template = get_comments_popup_template() ) : elseif ( is_paged() && $template = get_paged_template() ) : else : $template = get_index_template(); endif; if ( $template = apply_filters( 'template_include', $template ) ) include( $template ); return; endif;
コメント
コメント一覧 (3件)
[…] こちらのサイトに書かれていました。 […]
[…] トがとても参考になりました。 参考サイト:https://nskw-style.com/2010/wordpress/php/how-wp-works-01.html […]
[…] ワードプレスが動くとき、どんなphpが動いているか1:ルートのindex.php […]