spot_img
HomeWordPress教程wordpress建站公司 动作、函数和条件

wordpress建站公司 动作、函数和条件

JasperAI 10000字免费额度试用

在开发主题和插件时,有时需要使用条件语句向某些挂钩添加一些功能。

例子:

function my_custom_function() {
    if( is_home()) {
       <---what should the function do--->
    }
}

 add_action( 'some_hook', 'my_custom_function' );

据我了解,只要存在任何其他条件(is_home return false),函数的内容没有被执行,但是函数被执行了,尽管它是“空的”。 这意味着一个空函数被传递给了钩子。 这是使用条件标签在法典中显示所有示例的方式。

我确实知道这样做是安全的,并且它不会对加载时间产生任何重大影响(如果对加载时间有任何影响的话)。

我一直在想,同样的一段代码,按照例子,可以写成如下

if( is_home()) {
   function my_custom_function() {
     <---what the function should do--->
   }

  add_action( 'some_hook', 'my_custom_funtion' );

}

如果 is_home 返回假。

我不介意使用这两种方法中的任何一种。 但我想知道的是,由于第一个例子被广泛使用,是否有任何编码标准表明这是正确的使用方法,或者这是 wordpress 开发人员所采用的更普遍的方式,或者只是个人喜好。

PHP 的 WordPress 编码标准对此没有任何说明,也没有其他标准,因此开发人员可以选择一种或另一种方式。

我不得不说这两种方法有不同的方法; 第一个包含条件逻辑,第二个是条件函数声明,这意味着如果您尝试调用该函数,则会出现致命错误。

高质量外链购买

即使使用第一种方法,函数运行的位置(对无关紧要的性能的影响非常小) 丢失的 在应用程序加载中),这是一种更好的使用方法,因为当使用第二种方法时,应用程序的业务逻辑从函数转移到文件解析。

此外,您应该考虑您没有提到的第三种方式:

function my_custom_function() {
    // what the function should do
}

if ( is_home() ) {
    add_action( 'some_hook', 'my_custom_function' );
}

当您使用 OOP 编程时,这种方法的好处更明显:在这种情况下,类条件声明没有意义(并且方法条件声明根本不可能),但仅在特定条件下运行任务很有意义(钩发射)。

不要即时创建函数。 这很难阅读和调试。 相反,实施关注点分离,并将 回调的注册 从他们的 执行 (商业逻辑)。 在回调注册前逻辑地设置条件检查现在非常简单。
等待 为了行动 template_redirect 实例化该注册处理程序,因为那是你 知道 如果 is_home() 可以检查。

例子

class Theme_Hooks
{ 
    public function setup()
    {
        if ( ! is_404() ) {
            add_action(
                get_stylesheet() . '_breadcrumb',
                [ new Breadcrumb, 'render' ]
            );
        }

        if ( is_home() ) {
            add_action(
                get_stylesheet() . '_home_widget',
                [ new Home_Widget, 'render' ]
            );
        }
    }
}

add_action( 'template_redirect', [ new Theme_Hooks, 'setup' ] );

5分钟生成10篇英文软文article forge软件试用
siteground guangda
WordPress花园官方账号
WordPress花园隶致力于为广大跨境电商和独立站爱好者提供优质的WordPress教程、Woocommerce教程、Facebook、Twitter、tiktok、Instagram教程和谷歌SEO教程等资料和对应的建站推广服务。关注‘哟派出海’公众号了解最新资讯。粉丝福利:Shopline免费独立站建设14天优惠 商务合作: [email protected]
RELATED ARTICLES
spot_img