私はテーマを使ってポートフォリオを作ります。
私は、fuctions.phpに興味をそそる「ピン留めボタン」を追加したいと思います。Facebook、Google +、Twitterが行われました。
間違ったコードを見つけることができません。これは私のコードではありません:
function share_this($content){
if ( is_singular( 'portfolio' ) ) {
$content .= '<div class="share-this">' .
/* Facebook */
'<div class="facebook-like-button">' .
'<iframe src="http://www.facebook.com/plugins/like.php?href='. urlencode( get_permalink( $post->ID ) ) .
'&layout=button_count&show_faces=false&width=200&action=like&colorscheme=light&height=21"' .
'scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:200px; height:21px;" allowTransparency="true"></iframe>' .
'</div>' .
/* Pinterest */
'<div class="pinterest-it-button">'
'<a href="http://pinterest.com/pin/create/button/?url=<?php echo get_permalink(); ?>&media=<?php echo get_thumbnail(); ?>
'&description=<?php the_title(); ?>" class="pin-it-button" count-layout="horizontal">Pin It</a>
'<script type="text/javascript" src="http://assets.pinterest.com/js/pinit.js"></script>'.
'</div>' .
/* Googgle+ */
'<div class="plusone"><g:plusone size="medium" href="'.get_permalink().'"></g:plusone></div>' .
/* Twitter */
'<div><a href="http://Twitter.com/share" class="Twitter-share-button" data-count="horizontal">Tweet</a></div>' .
'</div>';
}
ありがとう
コードにいくつかのエラーがありました。最大のものは、関数が閉じ括弧さえ持っていないということでしたが、おそらくそれがあなたの投稿にコピーされていないのではないかと思われるかもしれません。
これはコンテンツに対するフィルタですね。
投稿内容の後にこれらの共有を追加したいようです。もしそうであれば、この行も必要になるでしょう。
add_filter('the_content','share_this');
それ以外は、あなたはphpタグを閉じて$content
変数に文字列データを追加しているステートメントの中でそれらを開くことを試みていました。あなたはデータをエコーしようとしていて、returnの代わりにechoに関数を使用していました(例えば、値を返すthe_title
の代わりにget_the_title
echos)。
あなたのコンテンツに追加された1つの大きな文字列の代わりに、私は配列構築方法を使って物事を片付けました、しかし複数の$shares .=
もうまくいったでしょう。
私はテストしていませんが、これでうまくいくはずです。
<?php
function share_this($content) {
if ( is_singular( 'portfolio' ) ) {
global $post;
$link = esc_attr(get_permalink($post->ID));
$title = esc_attr(get_the_title($post->ID));
$image_id = get_post_thumbnail_id($post-ID);
$image_url = wp_get_attachment_image_src($image_id);
$thumb = $image_url[0];
$shares = array();
$shares[] = '<div class="share-this">';
/* Facebook */
$shares[] = '<div class="facebook-like-button"><iframe src="http://www.facebook.com/plugins/like.php?href='.$link.'&layout=button_count&show_faces=false&width=200&action=like&colorscheme=light&height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:200px; height:21px;" allowTransparency="true"></iframe></div>';
/* Pinterest */
$shares[] = '<div class="pinterest-it-button"><a href="http://pinterest.com/pin/create/button/?url='.$link.'&media='.$thumb.'description='.$title.' class="pin-it-button" count-layout="horizontal">Pin It</a><script type="text/javascript" src="http://assets.pinterest.com/js/pinit.js"></script></div>';
/* Googgle+ */
$shares[] = '<div class="plusone"><g:plusone size="medium" href="'.$link.'"></g:plusone></div>';
/* Twitter */
$shares[] = '<div><a href="http://Twitter.com/share" class="Twitter-share-button" data-count="horizontal">Tweet</a></div>';
$shares[] = '</div>';
return $content . implode("\n", $shares);
}
}
最初にURLエンコードされる必要があり、2番目にget_thumbnail()
とは完全なimgタグを表示するため、間違ったURLを作成しています。そして第三にあなたはそれを反響しています。
とにかくこれを試して
/* Pinterest */
$baseurl = 'http://pinterest.com/pin/create/button/?';
$url = 'url='.urlencode(get_permalink());
$mediaUrl = '&media='.urlencode(wp_get_attachment_image_src ( get_post_thumbnail_id()));
$description = '&description='.urlencode(get_the_title());
$fullURL = $baseurl.$url.$mediaUrl.$description;
$content .= '<div class="pinterest-it-button">
<a href="'.$fullURL.'" class="pin-it-button" count-layout="horizontal">Pin It</a>
<script type="text/javascript" src="http://assets.pinterest.com/js/pinit.js"></script>
</div>';
あなたの問題は単純なphp構文です。あなたは変数の代入の中で開きと閉じのphpブレース<?php
と?>
を使うことができず、別々の文字列と変数はドット.
によって連結されなければなりません
例としてG +とFacebookのボタンに従ってください。私はまたあなたがあなたの結果をreturn
したいと思うと思いますか?