まず、私は経験豊富な開発者ではありません。実際、私が行っていることのほとんどは、Stackoverflow で見つけたハックと、試行錯誤によって学んだことに基づいています。見苦しいコードが先にあるかもしれません。
私がやろうとしているのは、訪問者がソーシャル メディア (Twitter、Facebook、電子メール) へのリンクを共有する簡単な方法を作成することです。
これが私が今持っているコードスニペットです:
echo ('Share: <a href="http://www.facebook.com/sharer.php?u=');
echo urlencode(the_permalink());
echo ('&t=');
echo themeprefix_social_title( get_the_title() );
echo ('">Facebook</a> · ');
echo ('<a href="http://twitter.com/share?text=');
echo the_title();
echo ('&url=');
echo urlencode(the_permalink());
echo ('&via=REDCAT&related=');
echo urlencode("REDACT");
echo ('" title="Share on Twitter" rel="nofollow" target="_blank">Twitter</a> · ');
echo do_shortcode('[cpss]');
themeprefix_social_title
タイトルのアンパサンドを処理するために Stackoverflowで見つけた関数です。
function themeprefix_social_title( $title ) {
$title = html_entity_decode( $title );
$title = urlencode( $title );
return $title;
}
アンパサンドをうまく処理しましたが、引用符と二重引用符を完全に台無しにするため、次のようにレンダリングされます (Twitter の場合):
なぜそれが難しいのか (「2」と「1」の間のスペースは、そうでない場合はここで正しくレンダリングされるためです)
だから今、私は立ち往生していることに気づきました:私が関数を使用しない場合、アンパサンドを含むタイトルは表示された時点でカットされるため、次のようなタイトルの場合:
ビッグ&スモール&レッド
私は得るだけです:
ビッグ
ただし、関数を使用すると、引用符と二重引用符が台無しになります。