Кнопки "Поделиться" в нижнем колонтитуле статьи
Для веб-сайта мне нужно разместить кнопки обмена 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">»</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);">
<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);">
<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 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&title=%2$s&summary=%3$s&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&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&title=%2$s',
'text' => esc_attr(__('StumbleUpon.', 'pietergoosen' )),
'icon' => '<span class="genericon genericon-stumbleupon"></span>'
),
'digg' => array (
'url' => 'http://digg.com/submit?phase=2&url=%1$s&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&fs=1&to&su=%1$s&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;
});
});
Это должно сработать. Ваши кнопки будут выглядеть так. Вам просто нужно создать стиль дженериков соответственно
РЕДАКТИРОВАТЬ
Я использую пользовательский отрывок, поэтому я изменил его на the_excerpt()
для целей этого ответа, в противном случае вы получите фатальную ошибку.
Насколько я знаю, вы должны иметь возможность включить следующий код в свой файл темы где-нибудь. Вам нужно будет загрузить соответствующие значки.
//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-адрес для обмена, но вы понимаете, в чем дело. Заранее прошу прощения за любые опечатки.
Это и есть решение. У меня была та же проблема с моими элегантными темами "Диви", но не с другими темами. Я спросил, и на форуме поддержки ответ находится в CSS:
.stButton .stFb, .stButton .stTwbutton, .stButton .stMainServices {
height: 28px !important;
}
Также, для пузырька подсчета:
.stHBubble {
height: 22px !important;
}