如何组织函数.php内容

时间:2015-05-15 作者:Camilo

在构建自定义主题时,我经常在其中添加自己的函数functions.php:

<?php
    function my_function() {
            // Do something...
    }
我应该在挂钩中组织所有自定义函数吗?

<?php
    add_action( \'init\',\'my_init\' );
    function my_init() {
            function my_function() {
                    // Do something...
            }
    }
?>

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

正如@TomJ Nowell所说,不要嵌套函数。只要照常写:

function my_theme_prefix_setup() {
    // Add theme support etc.
}

add_action( \'after_setup_theme\', \'my_theme_prefix_setup\' );

function my_theme_prefix_init() {
    // Register a post type
}

add_action( \'init\', \'my_theme_prefix_init\' );
或使用类:

class my_theme {
    function __construct() {
        add_action( \'after_setup_theme\', array( $this, \'setup\' ) );
        add_action( \'init\',              array( $this, \'init\' ) );
    }

    function setup() {

    }

    function init() {

    }
}

$my_theme = new my_theme;
或者使用“静态”类(无实例化)——由于主题/插件中的类模式通常是一个美化的名称空间,因此可以这样使用它们:

class my_theme {
    static function run() {
        add_action( \'after_setup_theme\', array( __class__, \'setup\' ) );
        add_action( \'init\',              array( __class__, \'init\' ) );
    }

    static function setup() {

    }

    static function init() {

    }
}

my_theme::run();
Then there\'s namespaces. 只要您运行的PHP>=5.3(正如@Nicholas所提到的,您应该这样做,但您不能依赖于公共主题-WordPress的最低要求只有5.2.4),这就是上述类试图解决的真正的解决方案。

也就是说,没有一种正确的技术。挑一个适合你的工作,并且你觉得舒服的。只要你保持它清晰、一致和可维护,你就做对了。

结束

相关推荐

如何使用此PHP库访问子主题中的OpenGraph数据?

我在儿童主题中充实帖子格式。对于link-键入posts,如果尚未设置特征图像,我想获取与链接关联的OpenGraph图像并显示它。我找到scottmac的opengraph PHP library, 我认为这将允许我获取OpenGraph数据。但我该如何将其纳入我的孩子主题并加以利用呢?我想这并不像放置opengraph.php 在我的子主题目录中,因为这没有真正的意义,但我不知道真正有意义的是什么。谢谢