質問: すべての使用済み/未使用を一覧表示する方法はありますか wp テンプレート? 私は最近管理しているサイトを最適化しようとしていますが、未使用のテンプレートはかなり少ないと思われます。私たちがサポートしているテンプレートに開発を集中できるように、未使用の余分なテンプレートファイルをすべて削除したいのですが、このサイトには100以上のページと投稿があるので、スポットチェックはできません。堅牢なクエリ.どのページテンプレートがwp_postsとwp_postmetaの結合から呼び出されているかを問い合わせる方法を確立し、wp_term_relationships butを介してwp_postsとwp_termsを問い合わせることによってどの投稿フォーマットが使用されているかを疑いました...私はindex.phpが今までに使われたことがあるかどうか(そして私はそれがそうであるとは思わない)。明らかなものが足りないかもしれませんが、通常のwordpressテーマファイルのどれが実際に呼び出されているかを確認する方法はありますか? orは、私がすべての情報をすでに持っていて、 'index.php'が使われていないということです。任意の助けは大歓迎です!ありがとう
回答: これは私がこれを処理するために使用する大まかな関数です、それはこれを速くて簡単にしたい人のためにうまくいくはずです。これをこのfunctions.phpファイルに追加してから、urlに?template_reportを追加してサイトにアクセスし、すべてのカスタムテーマテンプレートのレポートを表示します。 それは大雑把です、あなたがそれを使いたい時には、私はadd_action呼び出しにコメントする/コメントを外すことをお勧めします。 /** * theme template usage report * * displays a data dump to show you the pages in your wordpress * site that are using custom theme templates. */ function theme_template_usage_report( $file = false ) { if ( ! isset( $_get['template_report'] ) ) return; $templates = wp_get_theme()->get_page_templates(); $report = array(); echo '<h1>page template usage report</h1>'; echo "<p>this report will show you any pages in your wordpress site that are using one of your theme's custom templates.</p>"; foreach ( $templates as $file => $name ) { $q = new wp_query( array( 'post_type' => 'page', 'posts_per_page' => -1, 'meta_query' => array( array( 'key' => '_wp_page_template', 'value' => $file ) ) ) ); $page_count = sizeof( $q->posts ); if ( $page_count > 0 ) { echo '<p style="color:green">' . $file . ': <strong>' . sizeof( $q->posts ) . '</strong> pages are using this template:</p>'; echo "<ul>"; foreach ( $q->posts as $p ) { echo '<li><a href="' . get_permalink( $p, false ) . '">' . $p->post_title . '</a></li>'; } echo "</ul>"; } else { echo '<p style="color:red">' . $file . ': <strong>0</strong> pages are using this template, you should be able to safely delete it from your theme.</p>'; } foreach ( $q->posts as $p ) { $report[$file][$p->id] = $p->post_title; } } exit; } add_action( 'wp', 'theme_template_usage_report' ); 出力は次のようになります。