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

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

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

RSS(Really Simple Syndication)はブログのエントリやニュースの見出し、標準のフォーマットの音声やビデオなどを発行するために使われるウェブフィードのフォーマットの集合体です。

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1126閲覧

WordpressのRSSの出力に対して<a>タグのリンクだけを無効化したい

yosi0817

総合スコア7

RSS

RSS(Really Simple Syndication)はブログのエントリやニュースの見出し、標準のフォーマットの音声やビデオなどを発行するために使われるウェブフィードのフォーマットの集合体です。

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/11/24 10:00

Wordpressにて情報サイトを運営しています。

RSSをsmartnewsに適応させようとしているのですが、記事中にあるリンク設定があると適応外になります。

ただし、記事中のリンクは結構な数があり、削除していくのはかなりの手間となります。また、削除するのは情報性を落とすことになるため現実的ではありません。

function.phpへの記述などでRSSのみ<a>タグのリンクを無効化することはできないでしょうか?
なお、<a>内のテキストは無効化したくありません。

また、RSSの場合のみ<!--nextpage-->を無効にする方法(function.phpへの記述など)がありましたら合わせてお教え下さい。

どうぞよろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

フィルタして strip_tags したり置換してしまえばよいです。ちなみに strip_tags は許可するHTMLタグを指定できます。

【FeedlyでWordPressのRSSフィードのアイキャッチ画像を出す方法 | てらこや.work】
https://www.terakoya.work/feedly-wordpress-rss-feed/

【WordPressでフィード配信するときにショートコードを無効にする方法 | 東京上野のWeb制作会社LIG】
https://liginc.co.jp/web/wp/customize/164041/2

【PHP: strip_tags - Manual】
http://php.net/manual/ja/function.strip-tags.php


wp_kses_allowed_html() も使えるが、許可するタグのデフォルト値にa要素が入っているので、(こちらも)許可リストを自分で書く必要がある。

【wp_kses_allowed_html – WordPress私的マニュアル】
https://elearn.jp/wpman/function/wp_kses_allowed_html.html

【$allowedposttags – WordPress私的マニュアル】
https://elearn.jp/wpman/variable/allowedposttags.html

【WordPressで指定したタグをエスケープさせない方法 | webOpixel】
https://www.webopixel.net/wordpress/935.html

投稿2018/11/24 16:27

kei344

総合スコア69364

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

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

yosi0817

2018/11/25 07:18

ご回答ありがとうございます。 おかげさまで以下のコードをfunction.phpに記述することで目的が達成できました。 function my_content_feeds( $content ) { $content = apply_filters( 'the_content', get_the_content() ); $content = preg_replace( '/<a .*?>(.*?)</a>/', "$1", $content ); return $content; } add_filter( 'the_excerpt_rss', 'my_content_feeds' ); add_filter( 'the_content_feed', 'my_content_feeds' ); さらに非表示にしたい項目を追記して以下のようにしました。 function my_content_feeds( $content ) { $content = apply_filters( 'the_content', get_the_content() ); $content = preg_replace( '/<a .*?>(.*?)</a>/', "$1", $content ); $content = preg_replace('/<div class="eyecatch_area" .*?>(.*?)</div>/', "", $content); //追記1 $content = preg_replace('/<table class="tackle" .*?>(.*?)</table >/', "", $content);//追記2 return $content; } add_filter( 'the_excerpt_rss', 'my_content_feeds' ); add_filter( 'the_content_feed', 'my_content_feeds' ); 追記の説明 追記1 アイキャッチ画像を記事中のトップ画像として使用するコードをRSSでは非表示 追記2 テーブルの表組みをRSSでは非表示 このうち追記1はうまく非表示になりましたが、追記2はうまく動作していないようで非表示とはなりません。何がわるいのでしょうか? また、特定の文字列を非表示したい場合は、どのように追記すればよいでしょうか? なにぶんPHPは始めたばかりでたいした知識がありません。 具体的な方法をご教示いただけますと助かります。 どうぞよろしくお願いいたします。
yosi0817

2018/11/25 09:12

引き続きのご回答、ありがとうございます。 おかげさまですべてクリアになりました。 貴重な情報をご提供いただき、ありがとうございました。
guest

0

もしもclassかなんかついているんだったら

JavaScript

1$(function(){ 2 $('a.クラス名').click(function(){ 3 return false; 4 }) 5});

又は<div>でかこって

CSS

1.divのクラス名 a{ 2 pointer-events: none; 3}

後者はIEは非対応なので対応策を考えなければいけません。

###追記
よくよく推敲すると。後者は質問者さんの意図に合わないので気にしないでください。
前者のようにclassが付いていたらそれを実装するのが一番近道かと

投稿2018/11/24 12:12

編集2018/11/24 12:21
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

yosi0817

2018/11/25 07:06

ご回答ありがとうございます。aタグにはclassをつけていないんです。 記事数が多く、これからclassをつけるのもちょっと大変です。 今後の参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問