2013-12-09 4 views
3

я в надежде получить некоторую помощь с немного проблемы кодирования, которая сводит меня с умом. Я бы предпочел написать «&» вместо «и» в моих заголовках сообщений Wordpress. Но выписывание амперсандов ломает наши ссылки для обмена сообщениями для twitter, facebook и google-plus. Facebook может фактически отобразить ссылку (хотя она и выбрала амперсанд из названия), но твиттер завершился неудачно, а также google-plus.Амперсандов в названиях Wordpress нарушат долю социальных связей СМИ

Это код для делиться ссылками:

<ul> 
    <li class="video-twitter"><a target="_blank" href="http://twitter.com/share?text=<?php the_title(); ?>&amp;url=<?php the_permalink(); ?>" title="Share on Twitter">Twitter</a></li> 
    <li class="video-facebook"><a target="_blank" href="http://www.facebook.com/sharer.php?u=<?php the_permalink();?>&t=<?php the_title(); ?>" title="Share on Facebook">Facebook</a></li> 
    <li class="video-google"><a target="_blank" href="https://plus.google.com/share?url=<?php the_permalink();?>&t=<?php the_title(); ?>" title="Share on Google+">Google+</a></li> 
</ul> 

Любая помощь будет принята с благодарностью!

+0

Можете ли вы добавить один из сломанных ссылок, чтобы понять, что происходит там – newday

ответ

5

У меня была такая же проблема сегодня, и ее довольно легко исправить. Все амперсанды и т. Д. Служат в качестве объектов WordPress, это означает, что если вы используете get_the_title() или the_title(), амперсанды выглядят так: & # 038;

Вы можете декодировать это с помощью html_entity_decode(), после чего вам нужно будет сделать его URL-адресом дружественным, что можно сделать с помощью urlencode().

Объединить их, и вы будете иметь это:

<?php print urlencode(html_entity_decode(get_the_title())); ?> 

Или сделать это «чище» путь и создать эту функцию в файле темы functions.php:

function themeprefix_social_title($title) { 
    $title = html_entity_decode($title); 
    $title = urlencode($title); 
    return $title; 
} 

Таким образом, вы может использовать эту функцию в своей теме, которая может быть использована для всех социальных сетей:

<?php print themeprefix_social_title(get_the_title()); ?> 

Применяемый к вашему e xample:

<ul> 
    <li class="video-twitter"><a target="_blank" href="http://twitter.com/share?text=<?php print themeprefix_social_title(get_the_title()); ?>&url=<?php the_permalink(); ?>" title="Share on Twitter">Twitter</a></li> 
    <li class="video-facebook"><a target="_blank" href="http://www.facebook.com/sharer.php?u=<?php the_permalink();?>&t=<?php print themeprefix_social_title(get_the_title()); ?>" title="Share on Facebook">Facebook</a></li> 
    <li class="video-google"><a target="_blank" href="https://plus.google.com/share?url=<?php the_permalink();?>&t=<?php print themeprefix_social_title(get_the_title()); ?>" title="Share on Google+">Google+</a></li> 
</ul> 

 Смежные вопросы

  • Нет связанных вопросов^_^