0

現時点では、複数のヘルパー関数ファイルを含む functions.php を使用して Wordpress テーマに取り組んでいます。子テーマをテーマに基づいて作成する場合、このテーマは非常に柔軟でカスタマイズ可能であってほしいと考えています。

現在、functions.php に次のコードがあります。

add_action( 'template_redirect', 'wpf_contact' );
/**
 * Include the logic/settings for tpl-contact.php.
 *
 * Includes the logic/settings for tpl-contact.php. It will load the child's
 * mail.inc.php first if that is available.
 */
if ( ! function_exists( 'wpf_contact' ) ) {
    function wpf_contact() {

        if ( is_page_template( 'tpl-contact.php' ) && is_child_theme() && file_exists( get_stylesheet_directory() . '/inc/wpf/mail.inc.php' ) ) {
            include( get_stylesheet_directory() . '/inc/wpf/mail.inc.php' );
        } else {
            include( get_template_directory() . '/inc/wpf/mail.inc.php');
        }

    } // end wpf_contact()
}

上記のコードが行うことは、ファイルが存在する場合、子から mail.inc.php をロードすることです。親テーマからロードしない場合。

そのようにロードしたい複数のファイルがあるからです。これを行う簡単な方法はないのではないかと考えていましたか?WordPressでこれを行う組み込み関数はありますか?

または、上記の関数を調整してパラメーターを追加し、他のファイルにも使用できるようにする必要がありますか? これが効率的かどうかはわかりません。

4

1 に答える 1

0

サンプルに基づいて直接質問に答えるために、ファイルが子テーマに配置されているかどうかを確認しません。子テーマの開発者がファイルをカスタマイズしている場合、関数を宣言して独自のファイルを (どこにでも) 含めることができます。サンプル関数は十分に単純であるため、コードが重複するリスクはありません。

ここに配置する目的でコードを単純化したとしても....子テーマで宣言できる非常に単純な関数にラップされたインクルードをいつでも保持できます。これにより、PHP の効率的な実行が維持され、常にファイルをチェックする必要がなくなります。

于 2013-08-21T18:07:50.197 に答える