WordPressでコピーされたテキストに「続きを読む」リンクを追加する方法

人気のあるウェブサイト(eHowなど)では、サイトからコピーされたテキストに「続きを読む」リンクを付けることがあります。これは新しいユーザーを獲得するための素晴らしい方法です。しばしば、人々はウェブサイトからメールにテキストをコピー&ペーストします。情報を将来のために保存するために使用する人もいれば、単に友人、家族、同僚と共有するために使用する人もいます。この記事では、WordPressブログのコピーされたテキストに簡単に「続きを読む」リンクを追加する方法を紹介します。これにより、追加のトラフィックを獲得できます。

注:これを実際に確認するには、この投稿の何かをコピーして、メールやメモ帳に貼り付けてください。

まず、以下のコードをテーマのfunctions.phpファイルまたはサイト固有のプラグインにコピーする必要があります。

function add_copyright_text() {
	if (is_single()) { ?>

<script type='text/javascript'>
function addLink() {
	if (
window.getSelection().containsNode(
document.getElementsByClassName('entry-content')[0], true)) {
    var body_element = document.getElementsByTagName('body')[0];
    var selection;
    selection = window.getSelection();
	var oldselection = selection
    var pagelink = "<br /><br /> Read more at WPBeginner: <?php the_title(); ?> <a href='<?php echo wp_get_shortlink(get_the_ID()); ?>'><?php echo wp_get_shortlink(get_the_ID()); ?></a>"; //Change this if you like
    var copy_text = selection + pagelink;
    var new_div = document.createElement('div');
	new_div.style.left='-99999px';
	new_div.style.position='absolute';

    body_element.appendChild(new_div );
    new_div.innerHTML = copy_text ;
    selection.selectAllChildren(new_div );
    window.setTimeout(function() {
        body_element.removeChild(new_div );
    },0);
}
}


document.oncopy = addLink;
</script>

<?php
}
}

add_action( 'wp_head', 'add_copyright_text');

これで、誰かがあなたのウェブサイトに来てコンテンツをコピーしようとすると、コピーしたコンテンツと一緒に「続きを読む」リンクが含まれるようになります。著作権表示を変更し、そこにあなた自身のサイトのタイトルを追加することを忘れないでください。

編集: 当初はウィンドウURLを取得していましたが、ユーザーの指摘によりURLが不格好に見えるため、単一投稿ページでのみ表示し、wp_shortlinkを使用するように更新しました。そのため、somesite.com/?p=23 のようになります。もし私たちが使用しているようなカスタムショートリンク(例: wpbeg.in)を使用している場合は、ブランド化されたショートリンクが表示されます。

開示:当社のコンテンツは読者によってサポートされています。これは、当社のリンクの一部をクリックすると、当社が手数料を得る可能性があることを意味します。WPBeginnerがどのように資金提供されているか、それがなぜ重要か、そしてどのように私たちをサポートできるかについては、こちらをご覧ください。当社の編集プロセスはこちらです。

究極のWordPressツールキット

無料のツールキットにアクセスしましょう - すべてのプロフェッショナルが持つべきWordPress関連の製品とリソースのコレクションです!

読者とのインタラクション

59 CommentsLeave a Reply

  1. こんにちは。
    このコードは、あなたのウェブサイトでも、あなたのスニペット(WP 6.2)を使用した私のウェブサイトでも動作しないようです。確認していただけますか?ありがとうございます。

    • コードはまだ機能しています。プラグインをすべて無効にしたり、アドオンが競合を引き起こしていないか確認するためにシークレットブラウザを使用することをお勧めします。

      管理者

  2. こんにちは、良い情報をありがとうございます!

    Bitlyプラグインと一緒に教えていただいたコードをウェブサイトに適用しましたが、時々機能したりしなかったりします。

    このコードはキャッシュプラグインと関係がありますか?私のウェブサイトのどこを確認すればよいか教えていただけますか?

  3. こんにちは、

    ありがとう、2019年の記事では正常に動作しましたが、カスタム投稿タイプでも機能するようにできますか?

    EventonとWP News、Scrolling Widgetsを持っています。

  4. 各URLの末尾にGoogleトラッキングパラメータを追加する方法について、何かアドバイスはありますか?すでに投稿名の末尾に?p=を使用していることを考慮すると。

  5. これ、ありがとうございます。投稿にはうまく機能しますが、イベントからテキストをコピーすると、ページのURLが取得されません。何かアドバイスはありますか?ありがとうございます。

    • これは素晴らしいです。ありがとうございます。クラス – entry content と表示された場合、それは私のサイトのテキストの約90%で機能しなかったことを意味します。なぜなら、私のテキストはそのクラス名を使用していなかったからです。したがって、他の誰かがこの問題に遭遇した場合、「entry content」を「body」に変更できます。それが私がやったことです。
      var body_element = document.getElementsByTagName(‘body’)[0]; (13行目)
      これでどこでも機能します。

  6. どうもありがとうございます。すべてのテキストフォーマットが変更され、1行として貼り付けられました。しかし、テキストフォーマットはそのままにしておきたいのです。なので、これを取得する方法を教えてください。

  7. WordPressブログにスクリプトを追加しましたが、クリップボードの最後に付録が表示されません…

    Any ideas? I am not sure, if its because I am working on a mac… but I guess the javascript should work on Firefox on a mac too… :-(

  8. ブロガーに貼り付けると、次のエラーが発生します。
    XMLの解析エラー、2237行目、96列目:「a」要素タイプの属性「href」の値に「<」文字を含めることはできません。
    何か解決策はありますか?
    ありがとうございます。

  9. この機能は、コピー&ペーストをよりフラストレーションのたまるものにします。例えば、Wikipediaの編集のために見出しをコピー&ペーストすると、注意しないとフォーマットが崩れる可能性があり、追加の作業が必要になります。

  10. フォーマットを維持する方法を知っている人はいますか?

    このプラグインを使用すると、すべてのスペース、改行、フォーマットが失われます。

  11. 残念ながら、このコードはWP 3.8では動作しません

    新規インストールでテストしました。ご自由に確認してください。このコードを機能するように更新する予定はありますか?

    • Hello,

      最初はうまくいきませんでした。しかし、よく調べた結果、原因を突き止めました。

      コードの8行目に、次のように表示されます。
      document.getElementsByClassName(‘entry-content’)[0], true))

      これはコードに「このクラス名のテキストから誰かがテキストをコピーした場合、続きを読むリンクを挿入する」と指示する行です。

      やるべきことは、Firebugを使って投稿コンテンツがどのクラス名の下にあるかを調べるだけです。

      私は何度も編集した子テーマを持っているので、私のものはデフォルトの「entry-content」ではありませんでした。あなたのクラス名もそれとは異なると疑っています。

      頑張ってね、
      ロゼル

  12. Hello,

    この素晴らしい記事に大変感謝していますが、問題があります。ショートリンクではなく、パーマリンクを取得したいのですが。どうすればそれができるか、どなたか教えていただけますか?

    Cheers

  13. わー…共有してくれて本当に本当にありがとう。これに苦しんでいました…
    改めて感謝します。

  14. 投稿のタイトルがコピーされたときに「続きを読む」リンクが表示されないようにする方法を知っている人はいますか?

    ありがとうございます!

    • はい、可能です。セレクタータグをbodyからdiv IDなどに変更してください。リクエストは送信済みです。開発者から連絡があり次第、記事を更新します。

      管理者

      • ありがとう。6行目に var div = document.getElementById(‘copyright’); を追加し、divコンテンツに id=”copyright” を追加して試しましたが、あなたのコードと同じ結果になりました。すみません、私はプログラマーではありません。

  15. Outlookから新規作成したメールでも正常に動作したので、Gmailの問題だと思います。ありがとうございます!

  16. 面白くて役立ちますが、コピーテストがGmailでメールを作成する際に機能しなかったことに驚きました(少なくとも私には)。貼り付けたコピーテキストの後には何も表示されず、作成メールウィンドウの本文テキストエリアがフリーズしました。Notepadでコピーした部分をテストすると問題なく機能したので、Gmailの問題が何であるかはわかりません。

    ヒントをありがとうございます!

  17. それは良い選択肢ですね、Syedさん。共有ありがとうございます。しかし、投稿の短いURLを印刷できれば、ウェブサイトの所有者にとってはさらに良いでしょう。

    現在、長いURLが出力されています。Feedburnerのニュースレター購読でここに来た場合、UTMトラッキングURLも表示されます。

    ご理解いただけると幸いです。可能でしょうか?

      • それは迅速かつスマートです。

        質問です:コメントフォームから著者URLを削除したのはなぜですか?常に、WordPress搭載の多くのブログは、コメント著者にURLフィールドでNoFollow属性を付けてクレジットを与えています。

        Author URIフィールドを削除した特別な理由がありますか?それともPenguinアップデートに関する実験ですか?

        ところで、メールでフォローアップコメントの通知を受け取る」オプションを選択した後でも、コメント通知が一切届きません。

  18. わあ、これは素晴らしいヒントですね!引用して出典を表示しやすく、また、内容をざっと見て盗む人向けにリンクも追加できます。とてもクールです!

コメントを残す

コメントを残していただきありがとうございます。すべてのコメントは、当社のコメントポリシーに従ってモデレーションされますので、ご了承ください。メールアドレスは公開されません。名前フィールドにキーワードを使用しないでください。個人的で有意義な会話をしましょう。