是否在标题中执行操作(_A),是否稍后添加操作?

时间:2013-12-28 作者:cytofu

我只想在我想使用它的页面上包含facebook JSSDK。在facebook开发网站上,它说,理想情况下,在标题中的开头body标签之后就包含它。php

我的想法是添加标题。php

<?php do_action( \'topofthetop\'); ?>
在打开主体标记之后。

然后稍后(在之前的comments.php中<?php if ( have_comments() ) : ?>), 如果我需要打电话

add_action( \'topofthetop\', array(\'someclass\',\'FB_JS_SDK\') );
FB\\U JS\\U SDK只响应包含FB-JSSDK所需的代码。但代码不会出现在body标记之后。我猜是因为头球。在我的add\\u操作调用之前,php是allready输出吗?

我怎样才能解决这个问题?

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

在调用回调之前,必须先注册回调(add_action()add_filter() 是注册函数,它们记住什么时候做什么)。

在您的functions.php 或在插件中:

add_action( \'topofthetop\', \'load_FB_JS_SDK\' );

function load_FB_JS_SDK()
{
    if ( is_singular() && have_comments() )
        someclass::FB_JS_SDK();
}

SO网友:Brad Dalton

为什么不使用一个条件标记从子主题函数文件中将其钩住呢。

function facebook_comments_sdk_script() {


wp_enqueue_script( \'facebook-sdk\', get_bloginfo( \'stylesheet_directory\' ) . 

\'/js/fb-comments.js\', array(), \'1.0.0\', true );

}

add_action( \'wp_enqueue_scripts\', \'facebook_comments_sdk_script\' );


function load_facebook_comments_form() {

if ( comments_open() ) {

echo \'<div class="fb-comments" data-href="http://example.com/comments"   

data-numposts="5" data-colorscheme="light"></div>\';

   }

}

add_action(\'comment_form\', \'load_facebook_comments_form\');
我还从Javascript SDK中删除了脚本标记,并将其放入如下文件中:

(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=123456789224439";
  fjs.parentNode.insertBefore(js, fjs);
}(document, \'script\', \'facebook-jssdk\'));

结束

相关推荐

Custom Post Row Actions

我偶然发现this question 在写这个问题的时候。我有一个问题是关于这个问题的。我发现你用的是get_delete_post_link 筛选为我的操作创建一个新的url(或一个类似的函数——在任何情况下,我都会将该函数与布尔值一起使用)。唯一的问题是,I don\'t know how to capture the event now. 考虑到我在谷歌上找不到很多关于行后操作的例子,我将不胜感激-/public function _wp_filter_get_delete_post_link( $