質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

1回答

1110閲覧

index.phpのシェアボタンのリンク先が最新の投稿になってしまう

M.Takeshita

総合スコア24

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2019/05/22 12:30

編集2019/05/22 12:31

プラグインではないシェアボタンをheader.phpに入れているのですが、index.phpでこのsnsボタンを押すと、シェアされている内容はindexに入れているtitleやurlではなく、最新の投稿のものになってしまいます。

確かに設定項目のホームページの表示では最新の投稿を選択していますが、index.phpではなく、ここをfront-page.phpにしてもシェアボタンの表示は同じでした。

シェアボタンのソースの書き方に問題があるのでしょうか?
それともwordpress側の設定なのでしょうか?

何かアドバイスをいただけるとうれしいです。

シェアボタンのソース

<?php $share_url = get_permalink(); $share_title = get_the_title(); ?> <ul> <li><a href="//twitter.com/share?text=<?=$share_title?>&url=<?=$share_url?>" title="Twitterでシェア" onclick="javascript:window.open(this.href, '_blank', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=400,width=600');return false;"> <img src="<?php bloginfo('template_url'); ?>/img/pc/menu_3_pc.svg" alt=""></a></li> <li> <a href="//www.facebook.com/sharer.php?src=bm&u=<?=$share_url?>&t=<?=$share_title?>" title="Facebookでシェア" onclick="javascript:window.open(this.href, '_blank', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=800,width=600');return false;"> <img src="<?php bloginfo('template_url'); ?>/img/pc/menu_4_pc.svg" alt=""> </a></li> </ul>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

get_permalinkやget_the_titleはループ外で使うと、ループ内の最初の投稿を拾う仕様なのでアーカイブの種類にあわせて分岐する必要があります。

【WordPressでpathやURLを取得するためのタグと出力例まとめ | OXY NOTES】
https://oxynotes.com/?p=8590

投稿2019/05/22 12:41

kei344

総合スコア69458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

M.Takeshita

2019/05/22 14:12

なるほど。そういう事だったのですか。とても勉強になりました。ありがとうございます! 今回はindexだけの問題だったのでソースの書き方はこれから勉強しますが、ひとまず以下みたいにしました。 <?php if ( is_home() || is_front_page() ) : ?> <?php $share_url = home_url(); $share_title = "TOPのtitle"; ?> <?php else : ?> <?php $share_url = get_permalink(); $share_title = get_the_title(); ?> <?php endif; ?>
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問