WP theme with Backbone

时间:2016-10-16 作者:steakoverflow

确保主干WP主题与标准短代码和其他在页眉和页脚中包含脚本和样式标记的WP插件协作的最佳方式是什么。我知道主干网可以很好地使用jQuery脚本,但我不确定它在有由require加载的jQuery插件的情况下运行得如何。js应用程序本身的js和加载在某个页面页脚中的相同jQuery脚本
我曾考虑捕获一些主干入门主题中显示的目标页面/帖子的wp\\u head和wp\\u footer,但这给我留下了一个问题:我是否已经在require中加载了jQuery插件。js。

1 个回复
SO网友:prosti

如果您将主干与(https://github.com/tlovett1/_s_backbone) 你不会有问题的。他们使用主干网来实现一些效果,排队仍然存在。

/**
 * Enqueue scripts and styles.
 */
function _s_backbone_scripts() {
    wp_enqueue_style( \'_s_backbone-style\', get_stylesheet_uri() );

    wp_enqueue_script( \'_s_backbone-navigation\', get_template_directory_uri() . \'/js/navigation.js\', array(), \'20120206\', true );

    wp_enqueue_script( \'_s_backbone-skip-link-focus-fix\', get_template_directory_uri() . \'/js/skip-link-focus-fix.js\', array(), \'20130115\', true );

    if ( is_singular() && comments_open() && get_option( \'thread_comments\' ) ) {
        wp_enqueue_script( \'comment-reply\' );
    } elseif ( is_home() || is_front_page() || is_archive() || is_search() ) {
        global $wp_rewrite;

        wp_enqueue_script( \'_s_backbone-loop\', get_template_directory_uri() . \'/js/loop.js\', array( \'jquery\', \'backbone\', \'underscore\', \'wp-api\'  ), \'1.0\', true );

        $queried_object = get_queried_object();

        $local = array(
            \'loopType\' => \'home\',
            \'queriedObject\' => $queried_object,
            \'pathInfo\' => array(
                \'author_permastruct\' => $wp_rewrite->get_author_permastruct(),
                \'host\' => preg_replace( \'#^http(s)?://#i\', \'\', untrailingslashit( get_option( \'home\' ) ) ),
                \'path\' => _s_backbone_get_request_path(),
                \'use_trailing_slashes\' => $wp_rewrite->use_trailing_slashes,
                \'parameters\' => _s_backbone_get_request_parameters(),
            ),
        );

        if ( is_category() || is_tag() || is_tax() ) {
            $local[\'loopType\'] = \'archive\';
            $local[\'taxonomy\'] = get_taxonomy( $queried_object->taxonomy );
        } elseif ( is_search() ) {
            $local[\'loopType\'] = \'search\';
            $local[\'searchQuery\'] = get_search_query();
        } elseif ( is_author() ) {
            $local[\'loopType\'] = \'author\';
        }

        //set the page we\'re on so that Backbone can load the proper state
        if ( is_paged() ) {
            $local[\'page\'] = absint( get_query_var( \'paged\' ) ) + 1;
        }

        wp_localize_script( \'_s_backbone-loop\', \'settings\', $local );
    }
}
add_action( \'wp_enqueue_scripts\', \'_s_backbone_scripts\' );
因此,id类似于“\\u s\\u backbone-style”可以确保您的安全,因为您不会复制脚本。

其他主题应该,但可能不使用模板。最坏的情况甚至是最重要的wp_headwp_footer 钩子。

add_action( \'wp_head\', ...
add_action( \'wp_footer\', ...
如果是这种情况,许多WordPress插件将无法工作。

如果我尝试通过ajax加载页面,请检测它是否有加载jquery的CF7短代码。验证页面加载期间wp\\U头中的js。如果我已经加载了jquery,会发生什么。验证我的主干应用程序(主主题应用程序)中的js,现在尝试将该脚本加载为该页面的CF7表单要求?

在任何地方(即使使用Ajax),您都可以从

global $wp_scripts;
因为您提到了CF7,所以可以使用其中的钩子来注入代码。

注意:主干在WordPress中存在很长时间(@从3.5开始),可以与jQuery配合使用。它们是互补的。

相关推荐

致命错误:未捕获错误:无法将WP_ERROR类型的对象用作/../plugins/rm-payment.php中的数组

我使用2个WordPress站点、1个WordPress站点到2个WordPress站点的远程支付系统。第一个是主网站;第二个网站的工作方式类似于处理贝宝支付的商户网站。我们将第一个网站的用户订单详细信息提取到第二个网站,以处理贝宝付款。但在获取第二个网站的网页时出现错误,但请记住,如果重新加载它一次,问题就解决了致命错误:未捕获错误:无法将WP\\u error类型的对象用作/中的数组/插件/rm支付。php:第231行 $response = wp_remote_post( $remote_url,