[英]How to redirect from “page.php” to “#page.php” with Javascript or jQuery?
[英]Where to add the JavaScript SDK code in the page.php of my WordPress theme for the Facebook Plugin?
我不确定在哪里将Facebook为Facebook插件提供的代码添加到我的page.php中 。
这是我的原始page.php :
<?php
/**
* Theme Page Section for our theme.
*
* @package ThemeGrill
* @subpackage Spacious
* @since Spacious 1.0
*/
?>
<?php get_header(); ?>
<?php do_action( 'spacious_before_body_content' ); ?>
<div id="primary">
<div id="content" class="clearfix">
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', 'page' ); ?>
<?php
do_action( 'spacious_before_comments_template' );
// If comments are open or we have at least one comment, load up the comment template
if ( comments_open() || '0' != get_comments_number() )
comments_template();
do_action ( 'spacious_after_comments_template' );
?>
<?php endwhile; ?>
</div><!-- #content -->
</div><!-- #primary -->
<?php spacious_sidebar_select(); ?>
<?php do_action( 'spacious_after_body_content' ); ?>
<?php get_footer(); ?>
这是Facebook插件代码 :
<div id="fb-root"></div>
<script>
(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/sdk.js#xfbml=1&version=v2.5";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
我要求主题的支持在哪里插入Facebook插件代码,他们回答是:
在主体选项卡之后,我们包含了一个动作钩子:do_action('before'); 在您的子主题中创建一个函数,添加所需的代码并将其挂钩到上述动作挂钩。 像这样:function any_name(){将您的代码粘贴到此处(如果是HTML,则正确使用php标记的开始/结束))} add_action('before','any_name');
我看不到任何身体标签。
如果我在此行下方插入Facebook插件代码,是否正确?
<?php do_action( 'spacious_before_body_content' ); ?>
所以它看起来像这样:
<?php
/**
* Theme Page Section for our theme.
*
* @package ThemeGrill
* @subpackage Spacious
* @since Spacious 1.0
*/
?>
<?php get_header(); ?>
<?php do_action( 'spacious_before_body_content' ); ?>
<div id="fb-root"></div>
<script>
(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/sdk.js#xfbml=1&version=v2.5";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<div id="primary">
<div id="content" class="clearfix">
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', 'page' ); ?>
<?php
do_action( 'spacious_before_comments_template' );
// If comments are open or we have at least one comment, load up the comment template
if ( comments_open() || '0' != get_comments_number() )
comments_template();
do_action ( 'spacious_after_comments_template' );
?>
<?php endwhile; ?>
</div><!-- #content -->
</div><!-- #primary -->
<?php spacious_sidebar_select(); ?>
<?php do_action( 'spacious_after_body_content' ); ?>
<?php get_footer(); ?>
如果您还可以提供简短的解释或链接,以了解如何以及为什么,那么这将是我学习新知识的好机会。
edit_1: 这是我要插入网站页面的插件。 订阅时事通讯后,它将添加到“谢谢页面”中。 您可以尝试进行设置并执行“获取代码”,这样您就可以看到其中的内容。
为了将插件添加到您的网站,您必须添加2个代码:
我注意到的是,如果我将第一个代码(JavaScript SDK)添加到文件page.php中,则只能将第二个代码(显示内容的代码)添加到页面中(而不是例如在边栏中)。 。 如果将第一个代码添加到header.php中,则可以在任何地方添加第二个代码。
问题是,我不知道如何添加第一个代码以及在哪里添加。 我的意思是,实际上,我不知道从哪里开始将代码写入.php文件。
edit_2:好吧,这是我标题的摘录,我应该将代码粘贴到“空格一”,“空格二”或其他地方吗?
<body <?php body_class(); ?>>
--SPACE ONE--
<?php do_action( 'before' ); ?>
--SPACE TWO--
<div id="page" class="hfeed site">
<?php do_action( 'spacious_before_header' ); ?>
<header id="masthead" class="site-header clearfix">
</header>
关于钩子,你是对的,这让我很困惑!
通常,当您在任何页面上添加Facebook脚本时,只需将代码段放在body标签之后。 wordpress页面将被添加到body标签内,因此您在上面所做的一切都很好。
在主体选项卡之后,我们包含了一个动作钩子:do_action('before'); 在您的子主题中创建一个函数,添加所需的代码并将其挂钩到上述动作挂钩。 像这样:function any_name(){将您的代码粘贴到此处(如果是HTML,则正确使用php标记的开始/结束))} add_action('before','any_name');
但是这里提到的是一种更好的方法。.您需要为您的facebook脚本创建一个钩子。 这样,您只需调用Action即可,而不必每次在每个页面上添加该代码段时都复制该代码段。
有关更多信息,请查看Facebook SDK文档。
fb-root元素不得使用display:none或可视性:hidden来隐藏,否则SDK的某些部分将无法在Internet Explorer中正常工作。
SDK会将元素插入到fb-root中,这些元素应该相对于正文或相对于页面顶部附近的元素定位。 最好是fb-root元素不在具有position:absolute或position:relative的元素内。 如果必须将fb-root元素放置在定位元素的内部,则还应使其位置靠近主体顶部,否则SDK的某些部分可能无法正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.