文章页脚上的共享按钮

时间:2014-03-26 作者:Terix

对于一个网站,我需要在博客页面的每篇文章的页脚部分放置facebook和twitter共享按钮(其中列出了所有文章)。

我测试了许多社交插件,只有使用ShareThis才能得到这个结果。(我在没有运气的情况下也测试了Sharebar、Sociable和Social likes)。

不幸的是,Sharethis在我的网站上有一个布局错误,从按钮上切下了几个像素,你可以在这个屏幕截图上看到它:

http://postimg.org/image/gdog4h8nz/

我不知道如何解决这个问题,因为我无法控制构建这些按钮的嵌套span标记。

有人知道解决边界问题的方法吗,或者知道另一个做同样事情并且工作得更好的社交插件吗?

编辑:

这是我在记事本++上看到的代码:

    <div class="entry-content">
    <?php 
    $share = "<span class=\'st_facebook_hcount\' displayText=\'Facebook\'></span><span class=\'st_twitter_hcount\' displayText=\'Tweet\'></span>";
    //the_content( __( $articlefooter, \'twentythirteen\' ) );
    the_content( __( \'<footer id="sv-align-right" class="entry-meta">\'.$share.\'<span id="sv-read-article" class="btn btn-default">Continua a leggere <span class="meta-nav">&raquo;</span></span></footer>\', \'twentythirteen\' ) );
    ?>
    </div><!-- .entry-content -->
$share变量中的代码在运行时被ShareThis脚本替换,并随着大量嵌套的span标记而变得更大:

<footer id="sv-align-right" class="entry-meta">
<span class="st_facebook_hcount" displaytext="Facebook" st_processed="yes">
<span style="text-decoration:none;color:#000000;display:inline-block;cursor:pointer;"     class="stButton">
<span>
<span class="stMainServices st-facebook-counter" style="background-image: url(http://w.sharethis.com/images/facebook_counter.png);">&nbsp;
<img src="http://w.sharethis.com/images/check-big.png" style="position: absolute; top: -7px; right: -7px; width: 19px; height: 19px; max-width: 19px; max-height: 19px; display: none;"></span><span class="stArrow">
<span class="stButton_gradient stHBubble" style="display: inline-block;">
<span class="stBubble_hcount">0
</span></span></span></span></span></span>
<span class="st_twitter_hcount" displaytext="Tweet" st_processed="yes">
<span style="text-decoration:none;color:#000000;display:inline-block;cursor:pointer;" class="stButton">
<span>
<span class="stMainServices st-twitter-counter" style="background-image: url(http://w.sharethis.com/images/twitter_counter.png);">&nbsp;
<img src="http://w.sharethis.com/images/check-big.png" style="position: absolute; top: -7px; right: -7px; width: 19px; height: 19px; max-width: 19px; max-height: 19px; display: none;">
</span>
<span class="stArrow">
<span class="stButton_gradient stHBubble" style="display: inline-block;">
<span class="stBubble_hcount">0
</span></span></span></span></span></span>
<span id="sv-read-article" class="btn btn-default">Continua a leggere <span class="meta-nav">»</span></span>
</footer>
我找到了可以编辑以修复问题的嵌套span标记,但我无法控制它。我尝试为stMainservices类添加高度,如下所示:

.stMainServices {
    height:24px;
}
但从Chrome上我看到,这种风格不知怎么被覆盖了。

3 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

这里有一个使用genericons的解决方案。原始代码派生自this question 我问了,托肖回答了我的问题,所以他得到了这个答案中的原始代码。看看吧here

首先,下载并安装genericon pack 在您的主题中。将genericon样式表排队

function enqueue_genericon_style() {
      wp_enqueue_style( \'genericons\', get_template_directory_uri() . \'/genericons/genericons.css\', array(), \'3.0.2\' );
}

add_action( \'wp_enqueue_scripts\', \'enqueue_genericon_style\' );
将以下内容添加到函数中。php。这些函数通过添加共享url和genericons完成所有的艰苦工作

function pietergoosen_social_share_buttons() {
    $services = array (
        \'facebook\' => array (
            \'url\'  => \'https://www.facebook.com/sharer/sharer.php?u=%1$s\',
            \'text\' => esc_attr(__(\'Share on Facebook.\', \'pietergoosen\' )),
            \'icon\' => \'<span class="genericon genericon-facebook"></span>\'
        ),
        \'twitter\' => array (
            \'url\'  => \'http://twitter.com/home/?status=%1$s%%20-%%20%2$s\',
            \'text\' => esc_attr(__(\'Tweet this post!\', \'pietergoosen\' )),
            \'icon\' => \'<span class="genericon genericon-twitter"></span>\'
        ),
        \'googleplus\' => array (
            \'url\'  => \'https://plus.google.com/share?url=%1$s\',
            \'text\' => esc_attr(__(\'Google+1.\', \'pietergoosen\' )),
            \'icon\' => \'<span class="genericon genericon-googleplus"></span>\'
        ),
        \'linkedin\' => array (
            \'url\'  => \'https://www.linkedin.com/shareArticle?mini=true&url=%1$s&amp;title=%2$s&amp;summary=%3$s&amp;source=%4$s\',
            \'text\' => esc_attr(__(\'linkedin.\', \'pietergoosen\' )),
            \'icon\' => \'<span class="genericon genericon-linkedin"></span>\'
        ),
        \'reddit\' => array (
            \'url\'  => \'http://reddit.com/submit?url=%1$s&amp;title=%2$s\',
            \'text\' => esc_attr(__(\'Reddit.\', \'pietergoosen\' )),
            \'icon\' => \'<span class="genericon genericon-reddit"></span>\'
        ),
        \'stumbleupon\' => array (
            \'url\'  => \'http://www.stumbleupon.com/submit?url=%1$s&amp;title=%2$s\',
            \'text\' => esc_attr(__(\'StumbleUpon.\', \'pietergoosen\' )),
            \'icon\' => \'<span class="genericon genericon-stumbleupon"></span>\'
        ),
        \'digg\' => array (
            \'url\'  => \'http://digg.com/submit?phase=2&amp;url=%1$s&amp;title=%2$s\',
            \'text\' => esc_attr(__(\'Digg this post!\', \'pietergoosen\' )),
            \'icon\' => \'<span class="genericon genericon-digg"></span>\'
        ),
        \'gmail\' => array (
            \'url\'  => \'https://mail.google.com/mail/?view=cm&amp;fs=1&amp;to&amp;su=%1$s&amp;t=%2$s\',
            \'text\' => esc_attr(__(\'Share with Gmail\', \'pietergoosen\' )),
            \'icon\' => \'<span class="genericon genericon-mail"></span>\'
        )
    );

    $title    = the_title_attribute( array ( \'echo\' => FALSE ) );
    $url      = urlencode( get_permalink() );
    $summary  = the_excerpt();
    $source   = \'\';

    print \'<h4>\' . __( \'Share this post with others\', \'pietergoosen\' ) . \'</h4>\';

    echo \'<div class="socialgenericons service">\';

        foreach ( $services as $name  => $service )
        {
            $href = sprintf( $service[\'url\'], $url, urlencode( $title ), urlencode( $summary ), urlencode( $source ) );
            $genericon = $service[\'icon\'];

            printf(
                \'<a href="%1$s" title="%2$s" alt="%2$s">%3$s</a>\',
                $href,
                $service[\'text\'],
                $genericon
            );
        }

    echo \'</div>\';  
}
现在添加<?php pietergoosen_social_share_buttons(); ?> 在您的内容中。需要显示按钮的php。

要在单击链接时打开弹出窗口,请在enqueue_genericon_style() 作用

wp_enqueue_script( \'pietergoosen-socialshare\', get_template_directory_uri() . \'/js/socialshare.popup.js\', array( \'jquery\' ), \'\' , true );
现在在你的主题中创建一个js文件夹,如果你没有的话。创建一个名为socialshare.popup.js 在js文件夹中。现在在该文件中添加以下内容

jQuery(document).ready(function($) {

    jQuery(\'.socialgenericons.service a\').live(\'click\', function(){

        newwindow=window.open($(this).attr(\'href\'),\'\',\'height=450,width=700\');

        if (window.focus) {newwindow.focus()}

        return false;

    });

});
这应该可以奏效。您的按钮将如下所示。您只需要相应地设置genericons的样式

Social buttons

EDIT

我使用自定义摘录,所以我将其更改为the_excerpt() 就本答案而言,否则将出现致命错误。

SO网友:unifiedac

据我所知,您应该能够在主题文件的某个地方包含以下代码。您需要上传相应的图标。

//Facebook Share
<a href="http://www.facebook.com/sharer/sharer.php?s=100&p[url]=<?php echo get_permalink() . \'&p[title]=\' . get_the_title(); ?>"><img src="[facebook icon url]" /></a>

//Twitter Share
<a href="https://twitter.com/intent/tweet?url=<?php echo get_permalink() . \'&text=\' . get_the_title(); ?>"><img src="[twitter icon url]" /></a>

//Google+ Share
<a href="https://plus.google.com/share?url=<?php echo get_permalink(); ?>"><img src="[google+ icon url]" /></a>
我肯定还有其他人使用标准URL进行共享,但你明白了。对于任何拼写错误,请提前道歉。

SO网友:ConnectSheep

这就是解决方案。我的优雅主题“Divi”也有同样的问题,但其他主题没有。我问过,在支持论坛上,答案是CSS:

.stButton .stFb, .stButton .stTwbutton, .stButton .stMainServices {
    height: 28px !important;
}
此外,对于计数气泡:

.stHBubble {
    height: 22px !important;
}

结束

相关推荐

保存_AUTHER_POSTS_LINK()的返回值

正如你所知,在循环中,the_title() 函数在屏幕上显示(回显)帖子标题,以及get_the_title() 返回它(以便可以将其保存在变量中)。这对夫妇也是如此get_the_post_thumbnail() 和the_post_thumbnail().现在,什么与the_author_posts_link()? 我需要保存该信息,而不是显示它。