首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >网站缺失的Facebook分享按钮

网站缺失的Facebook分享按钮
EN

Stack Overflow用户
提问于 2021-05-01 02:23:39
回答 1查看 33关注 0票数 0

我已经为WordPress构建了一个超级简单的插件,它可以在单个帖子上显示分享按钮。

代码如下:

代码语言:javascript
运行
复制
<?php
/**
 * Social buttons
 */
function zss_share_buttons() {
$post_url = esc_url( get_the_permalink() ); // Facebook native button doesn't play well with encoded URLs
$encoded_post_url = urlencode( esc_url( get_the_permalink() ) );
$encoded_post_title = htmlspecialchars( rawurlencode( html_entity_decode( esc_html( get_the_title() ), ENT_COMPAT, 'UTF-8' ) ), ENT_COMPAT, 'UTF-8' );
?>
    <div class="zss">
        <!-- 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 = "https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.0";
                fjs.parentNode.insertBefore(js, fjs);
            }
            (document, 'script', 'facebook-jssdk'));
        </script>
        <div class="fb-share-button" data-href="<?php echo $post_url; ?>" data-layout="button_count"></div>
        <!-- Twitter -->
        <a href="https://twitter.com/intent/tweet?url=<?php echo $encoded_post_url; ?>&amp;text=<?php echo $encoded_post_title; ?>" title="Share on Twitter" target="_blank" rel="nofollow noopener noreferrer" class="zss-button zss-button--twitter"><span>Twitter</span></a>
        <!-- LinkedIn -->
        <a href="https://www.linkedin.com/sharing/share-offsite/?url=<?php echo $encoded_post_url; ?>" title="Share on LinkedIn" target="_blank" rel="nofollow noopener noreferrer" class="zss-button zss-button--linkedin"><span>LinkedIn</span></a>
        <!-- Email -->
        <?php if ( class_exists( 'GFCommon' ) ) : ?>
            <button title="Share by Email" class="zss-button zss-button--email" id="triggerModal"><span>Email</span></button>
            <div id="zssModal" class="zss-modal">
                <div class="zss-modal__content">
                    <span class="zss-modal__close">&times;</span>
                    <?php gravity_form( 1, false, false, false, '', true); ?>
                </div>
            </div>
        <?php endif; ?>
    </div>
<?php }

/**
 * Insert share buttons
 */ 
function zss_insert_share_buttons( $content ) {
    /**
     * If AMP
     */ 
    if ( function_exists( 'ampforwp_is_amp_endpoint' ) && ampforwp_is_amp_endpoint() ) {
        return $content;
    }
    if ( is_single() && 'post' == get_post_type() ) {
        ob_start();
        zss_share_buttons();
        $content .= ob_get_clean();
    }
    return $content;
}
add_filter( 'the_content', 'zss_insert_share_buttons' );

Facebook按钮使用的Share Button代码与文档中演示的完全相同。

我总是遇到Facebook的分享按钮根本不显示的问题,主要是在Chrome和Safari iOS上。

您是否需要Facebook应用程序ID才能正常工作?托管它的网站每月有大约100万独立访问者,所以我想知道它是否与速率限制有关。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-03 01:00:56

如果你点击https://developers.facebook.com/docs/plugins/share-button/上的Get Code按钮,你会注意到在导入JS时使用了App ID。

代码语言:javascript
运行
复制
<div id="fb-root"></div>
<script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v10.0&appId=<app_id>&autoLogAppEvents=1" nonce="U86MbFL2"></script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67338767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档