如何仅在需要时才将脚本和样式入队?

时间:2020-06-15 作者:D_P

我已经创建了基于ACF和灵活字段布局的页面。在我的主题中,我有一些JS脚本,如masonry、fancybox、lazyload。目前,im使用标准wp_enqueue_style 在里面function.php 文件只有选择了ACF中的某个块,并且只有在该块较早插入的情况下,才有聪明的方法将脚本排队吗?

谢谢

1 个回复
SO网友:dnwjn

我使用以下命令将特定脚本排入post.php, 由admin_enqueue_scripts 挂钩:

if ( in_array( get_current_screen()->base, [ \'post\' ] ) ) {
    // Load scripts only on the post edit page.
    wp_enqueue_script( PLUGIN_NAME, PLUGIN_ROOT_URL . \'resources/js/script.js\', [], PLUGIN_VERSION, false );
}
您可以检索帖子的内容并扫描它以查找所需的块,而不是我所做的检查。像这样:

if ( is_singular() ) {
    $post = get_post();
    if ( $post && has_blocks( $post ) ) {
        $blocks = parse_blocks( $post->post_content );
        $postContainsBlock = ... // Search $blocks array for the required block.
            
        if ( $postContainsBlock ) {
            wp_enqueue_script( PLUGIN_NAME, PLUGIN_ROOT_URL . \'resources/js/script.js\', [], PLUGIN_VERSION, false );
        }
    }
}
Note: 我还没有测试上面的代码。

相关推荐