Кнопки "Поделиться" в нижнем колонтитуле статьи


Для веб-сайта мне нужно разместить кнопки обмена facebook и twitter в нижнем колонтитуле каждой статьи на странице блога (где перечислены все статьи).

Я протестировал множество социальных плагинов и смог получить этот результат только с помощью 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 я вижу, что стиль каким-то образом перезаписывается.

Author: Terix, 2014-03-26

3 answers

Вот решение, в котором используются генериконы. Исходный код был получен из этого вопроса Я спросил и ответил тошо, так что ему следует отдать должное за исходный код, который привел к коду в этом ответе. Проверьте это здесь

Во-первых, загрузите и вставьте пакет genericon в свою тему. Поставьте в очередь таблицу стилей 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' );

Добавьте следующее в свой functions.php . Эти функции выполняют всю тяжелую работу, добавляя URL-адрес общего доступа и генериконы

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(); ?> в свой content.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;

    });

});

Это должно сработать. Ваши кнопки будут выглядеть так. Вам просто нужно создать стиль дженериков соответственно

Social buttons

РЕДАКТИРОВАТЬ

Я использую пользовательский отрывок, поэтому я изменил его на the_excerpt() для целей этого ответа, в противном случае вы получите фатальную ошибку.

 1
Author: Pieter Goosen, 2017-04-13 12:37:42

Насколько я знаю, вы должны иметь возможность включить следующий код в свой файл темы где-нибудь. Вам нужно будет загрузить соответствующие значки.

//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-адрес для обмена, но вы понимаете, в чем дело. Заранее прошу прощения за любые опечатки.

 2
Author: unifiedac, 2014-03-26 20:27:26

Это и есть решение. У меня была та же проблема с моими элегантными темами "Диви", но не с другими темами. Я спросил, и на форуме поддержки ответ находится в CSS:

.stButton .stFb, .stButton .stTwbutton, .stButton .stMainServices {
    height: 28px !important;
}

Также, для пузырька подсчета:

.stHBubble {
    height: 22px !important;
}
 1
Author: ConnectSheep, 2015-08-01 13:50:15