WordPressでSmartNews対応フィードを出力するカスタマイズ方法【コピペで実装】

WordPressでは、フィードの設定を行うことでSmartNews形式に対応させることが可能です。

以下では、簡単にできるようにコピペと、ちょっとした入力でカスタマイズできる方法を紹介します。

スポンサーリンク
レクタングル(大)広告

主な手順

WordPressのフィードをSmartNews対応させるのに必要な主な手順はこちら。

  1. 子テーマ直下にsmartnews.phpテンプレートの作成
  2. SmartNewsフィード用のコードを貼り付ける
  3. コード内に変数値を入力する
  4. functions.phpでSmartNewsフィードを呼び出す

基本的に、コピペ2回と、ちょっとした値入力で実装できるかと思います。

子テーマ直下にsmartnews.phpテンプレートの作成

まずは、子テーマフォルダ直下に「smartnews.php」というテンプレートファイルを作成します。

smartnews.php

SmartNewsフィード用のコードを貼り付ける

テンプレートファイルを開いて以下のコードを貼り付ける。

<?php
/**
* RSS2 Feed Template for displaying RSS2 Posts feed.
*
* @package SmartNews
*/

/**
* 寝ログ
* @author: yhira
* @link: https://nelog.jp/smaetnews-feed
* @license: http://www.gnu.org/licenses/gpl-2.0.html GPL v2 or later
*/
if ( !defined( 'ABSPATH' ) ) exit;

$logo_url = 'サイトロゴのURL';
$no_image_url = 'アイキャッチがない場合の画像URL';
$tracking_id = 'Google AnalyticsのトラッキングID';
$site_domain = 'サイトドメイン';

// //入力例
// $logo_url = 'https://im-cocoon.net/wp-content/uploads/nelog-logo.png';
// $no_image_url = 'https://im-cocoon.net/wp-content/uploads/no-image.jpeg';
// $tracking_id = 'UA-775245XXX';
// $site_domain = 'nelog.jp';

header( 'Content-Type: ' . feed_content_type( 'rss2' ) . '; charset=' . get_option( 'blog_charset' ), true );
$more = 1;

echo '<?xml version="1.0" encoding="' . get_option( 'blog_charset' ) . '"?' . '>';

/**
* Fires between the xml and rss tags in a feed.
*
* @since 4.0.0
*
* @param string $context Type of feed. Possible values include 'rss2', 'rss2-comments',
* 'rdf', 'atom', and 'atom-comments'.
*/
do_action( 'rss_tag_pre', 'rss2' );
?>
<rss version="2.0"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  xmlns:media="http://search.yahoo.com/mrss/"
xmlns:snf="http://www.smartnews.be/snf"
  <?php
  /**
   * Fires at the end of the RSS root to add namespaces.
   *
   * @since 2.0.0
   */
  do_action( 'rss2_ns' );
  ?>
>


<channel>
  <title><?php wp_title_rss(); ?></title>
  <atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
  <link><?php bloginfo_rss( 'url' ); ?></link>
  <description><?php bloginfo_rss( 'description' ); ?></description>
  <lastBuildDate>
  <?php
    $date = get_lastpostmodified( 'GMT' );
    echo $date ? mysql2date( 'r', $date, false ) : date( 'r' );
  ?>
  </lastBuildDate>
  <copyright><?php bloginfo_rss('name'); ?> All rights reserved.</copyright>
  <snf:logo>
      <url><?php echo $logo_url; ?></url>
  </snf:logo>
  <language><?php bloginfo_rss( 'language' ); ?></language>
  <sy:updatePeriod>
  <?php
    $duration = 'hourly';

    /**
     * Filters how often to update the RSS feed.
     *
     * @since 2.1.0
     *
     * @param string $duration The update period. Accepts 'hourly', 'daily', 'weekly', 'monthly',
     * 'yearly'. Default 'hourly'.
     */
    echo apply_filters( 'rss_update_period', $duration );
  ?>
  </sy:updatePeriod>
  <sy:updateFrequency>
  <?php
    $frequency = '1';

    /**
     * Filters the RSS update frequency.
     *
     * @since 2.1.0
     *
     * @param string $frequency An integer passed as a string representing the frequency
     * of RSS updates within the update period. Default '1'.
     */
    echo apply_filters( 'rss_update_frequency', $frequency );
  ?>
  </sy:updateFrequency>
  <?php
  /**
   * Fires at the end of the RSS2 Feed Header.
   *
   * @since 2.0.0
   */
  do_action( 'rss2_head' );

  while ( have_posts() ) :
    the_post();
    ?>
  <item>
    <title><?php the_title_rss(); ?></title>
    <link><?php the_permalink_rss(); ?></link>
    <?php if ( get_comments_number() || comments_open() ) : ?>
    <comments><?php comments_link_feed(); ?></comments>
    <?php endif; ?>
    <pubDate><?php echo mysql2date( 'D, d M Y H:i:s +0000', get_post_time( 'Y-m-d H:i:s', true ), false ); ?></pubDate>
    <dc:creator><![CDATA[<?php the_author(); ?>]]></dc:creator>
    <?php the_category_rss( 'rss2' ); ?>

    <guid isPermaLink="false"><?php the_guid(); ?></guid>

    <?php if (get_option('rss_use_excerpt')) : ?>
    <description><![CDATA[<?php echo the_excerpt_rss(); ?>]]></description>
    <?php endif; ?>
    <?php
    $content = get_the_content_feed('rss2');
    //aリンクは含めない。SmartNewsの仕様?リンクが多くあると以下のエラーが出る
    //item.content:encoded の記事内に多くのリンクが含まれています - item.title: 記事のタイトル
    //https://publishers.smartnews.com/ja/smartformat/specification_rss/
    $content = preg_replace('{<a [^>]+?>}i', '', $content);
    $content = str_replace('</a>', '', $content);
     ?>
    <content:encoded><![CDATA[<?php echo $content; ?>]]></content:encoded>

    <?php if ( get_comments_number() || comments_open() ) : ?>
    <wfw:commentRss><?php echo esc_url( get_post_comments_feed_link( null, 'rss2' ) ); ?></wfw:commentRss>
    <slash:comments><?php echo get_comments_number(); ?></slash:comments>
    <?php endif; ?>
    <?php rss_enclosure(); ?>
    <?php
    /**
     * Fires at the end of each RSS2 feed item.
     *
     * @since 2.0.0
     */
    do_action( 'rss2_item' );
    ?>
    <?php //アイキャッチの取得
    $image_id = get_post_thumbnail_id();
    $image_url = wp_get_attachment_image_src($image_id, true);
    if (isset($image_url[0])) {
      $thumbnail = $image_url[0];
    } else {
      $thumbnail = $no_image_url;
    }
?>
    <media:thumbnail url="<?php echo $thumbnail; ?>" />
    <snf:analytics><![CDATA[
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', '<?php echo $tracking_id; ?>', '<?php echo $site_domain; ?>');
ga('require', 'displayfeatures');
ga('set', 'referrer', 'http://www.smartnews.com/');
ga('send', 'pageview', '<?php echo str_replace(home_url(), '', get_permalink()); ?>');
</script>
]]>
</snf:analytics>
  </item>
  <?php endwhile; ?>
</channel>
</rss>

上記コードは、WordPressのインストールディレクトリにある、「wp-includes/feed-rss2.php」をカスタマイズしたものです。

コード内に必要な変数値を入力する

コード内の以下の部分を

$logo_url = 'サイトロゴのURL';
$no_image_url = 'アイキャッチがない場合の画像URL';
$tracking_id = 'Google AnalyticsのトラッキングID';
$site_domain = 'サイトドメイン';

以下のように自分の環境に合ったものに変更します。

//入力例
$logo_url = 'https://im-cocoon.net/wp-content/uploads/nelog-logo.png';
$no_image_url = 'https://im-cocoon.net/wp-content/uploads/no-image.jpeg';
$tracking_id = 'UA-775245XXX';
$site_domain = 'nelog.jp';

functions.phpでSmartNewsフィードを呼び出す

あとは子テーマのfunctions.phpに以下のコードをコピペで追記します。

//SmartNewsフィード追加
add_action('init', function (){
	add_feed('smartnews', function () {
		get_template_part('smartnews');
	});
});

//SmartNewsのHTTP header for Content-type
add_filter( 'feed_content_type', function ( $content_type, $type ) {
	if ( 'smartnews' === $type ) {
		return feed_content_type( 'rss2' );
	}
	return $content_type;
}, 10, 2 );

上記コードでSmartNewsフィードをWordPressに登録しています。

動作確認

動作確認を行うには、以下のURLでフィードを出力させ確認します。

http://ドメイン/?feed=smartnews

サンプルフィードはこちら。

https://wp-cocoon.com/?feed=smartnews

Chromeで確認すると、以下のようなコードが出力されているのがわかります。

SmartNewsフィードコード

SmartNewsには、「SmartFormat チェックツール」というフィードチェックツールもあります。

チェックツールに、「フィードのURL」や「XMLファイル」をポストすることでSmartNewsフォーマットに適合しているか手軽にチェックすることができます。

うまく動作していれば「結果」の部分に「Valid」と表示されます。

SmartNewsフォーマットチェック

画面下の方に行けば、ソースコードやプレビュー画面を見ることができます。

ソースHTML。

プレビューソースXML

プレビュー。

SmartNewsプレビュー画面

まとめ

今回の方法を利用すれば、比較的簡単にSmartNewsフィード対応させることができるかと思います。

WordPressカスタマイズに慣れている方であれば、5分もかからないかと思います。

ただ、フィードを出力できたとしても、SmartNewsは登録制です。

※本フォームからは受け付けておりません。ご申請は よりお願いいたします。

結局のところ、申請に合格しなければ、意味はないかもしれません。

SmartFormatの仕様書はこちら。

WordPressテーマのCocoonを利用している場合は、デフォルトで機能がついているのでこのカスタマイズは不要です。また、その他テーマでも、SmartNewsフィード機能があるテーマはカスタマイズは不要かと思います。

『WordPressでSmartNews対応フィードを出力するカスタマイズ方法【コピペで実装】』へのコメント

  1. 名前:竹山 投稿日:2019/11/13(水) 10:58:33 ID:a6364d34e

    はじめまして。

    他サイトではうまくいかなかったSmartNews対応フィードがこちらの記事のおかげでできました。ありがとうございます。

    1点不明な点があったのですが、スマートニュースにはアドセンスを1枚貼れるようで、そのやり方が分かりませんでした。

    また、スマートフォーマットに準拠すると関連記事への内部リンクが貼れないのですが、文中の一部分やリンクカードのみ送らない方法があるのかどうかがあると私のようなCSSに詳しくないブロガーは助かるのではないかと感じました。

    お時間があるときにでも追記していただけましたら幸いです。

    竹山

  2. アバター画像 名前:わいひら 投稿日:2019/11/15(金) 11:37:38 ID:d5229008c

    はじめまして。
    うまくいったようでよかったです^^

    1点不明な点があったのですが、スマートニュースにはアドセンスを1枚貼れるようで、そのやり方が分かりませんでした。

    これなんですが、情報元はありますでしょうか。URLをいただけると幸いです。

    また、スマートフォーマットに準拠すると関連記事への内部リンクが貼れないのですが、文中の一部分やリンクカードのみ送らない方法があるのかどうかがあると私のようなCSSに詳しくないブロガーは助かるのではないかと感じました。

    これに関しては、どの内部リンクが「必要」もしくは「必要でない」かは、プログラム側からは判断できないので、難しいのではないかと思います。
    やるとしても、独自のアルゴリズムを高度内に含める必要があるのではないかと思います。もしくは自分で。

  3. 名前:佐藤 投稿日:2019/11/25(月) 21:52:54 ID:8a0423a43

    はじめまして。
    記載の手順でカスタマイズを行ったのですが、SmartFormat チェックツールで
    以下のエラーが出てしまいます。原因分かりますでしょうか。

    Invalid part found – invalid: “…<rss version="2.0"…", line: 1107, column: 12

    お手数ですが、ご確認頂けると幸いです。

  4. アバター画像 名前:わいひら 投稿日:2019/11/26(火) 22:15:26 ID:35b331632

    自分のフィードで試した限りでは問題ないようです。
    ttps://wp-cocoon.com/?feed=smartnews
    エラーメッセージだけでは、分からない部分もあるので、フィードのURLを提示していただければと思います。

  5. 名前:佐藤 投稿日:2019/11/28(木) 23:04:48 ID:5f8cfdf88

    わいひら様

    ありがとうございます。フィードのURLは以下になります。
    ttps://omori-kamata.com/?feed=smartnews

    よろしくお願い致します。

  6. アバター画像 名前:わいひら 投稿日:2019/12/01(日) 20:23:25 ID:15bea10ad

    なぜか、/rssタグで終わるはずのところが、もう一度同じものが出力されているようです。
    https://nelog.jp/wp-content/uploads/2019/12/2019-12-01_20h17_06.png
    通常はこうなるはずです。
    https://nelog.jp/wp-content/uploads/2019/12/2019-12-01_20h18_09.png
    原因としては、テンプレートに同じ物が二重に貼り付けられているとか、呼び出しが何度かあるとかいくつかあると思います。
    ただ、こちら側からPHPコードを見ることはできないので、PHP問題の詳細については自分で解決していただくしかないかもしれません。

  7. 名前:佐藤 投稿日:2019/12/03(火) 00:15:32 ID:87a0d5fc1

    ご指摘の点を参考にし、子テーマのfunctions.phpから以下の記述のコードを削除したら、エラーがなくなりました。
    >あとは子テーマのfunctions.phpに以下のコードをコピペで追記します。

    恐らく、親テーマのfunctions.phpでも呼び出されているようで、二重に呼び出していたようです。

    解決できて良かったです。ありがとうございました。

  8. アバター画像 名前:わいひら 投稿日:2019/12/03(火) 12:52:15 ID:0311735d5

    ああ、なるほど。
    テーマ自体にSmartNewsフィード機能が実装されている場合は、このカスタマイズは不要です。
    URLのフィード部分を削除してサイトを見たら、Cocoonなんですね。
    だとしたら、機能としてデフォルトでついています。
    https://wp-cocoon.com/smartnews-feed/
    この記事にも、最後の部分に注意書きとして書いておこうと思います。

  9. 名前:山下 投稿日:2019/12/05(木) 16:46:20 ID:79e1b63a3

    はじめまして。

    このページを参考にsmartnews用のrssを作成したのですが、以下のエラーが出てしまいます。

    「ファイルのサイズ容量は 1 MB 以下を推奨値としております」

    対策として、smartnewsの公式には以下が挙げられているのですが、やり方がわからず、ご教授いただけますと幸いです。

    参考: ファイルに含まれる記事数を減らす、SmartFormatファイルを複数に分けるなどして、ファイル容量を小さくしてください。
    https://publishers.smartnews.com/hc/ja/articles/360022876234

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

  10. アバター画像 名前:わいひら 投稿日:2019/12/06(金) 10:53:59 ID:b4b24e407

    原因を探るには、まずは現在どのような状態になっているかを知る必要があります。
    上の方で書かれている佐藤さんのようにSmartNewsフィードのURLを掲示していただけますでしょうか。

  11. 名前:ゆうき 投稿日:2020/03/14(土) 11:14:18 ID:ebfd8c4a1

    簡単な方法をググって、こちらのページを見つけました
    わかりやすく、直ぐできました
    ありがとうございます

    もし良ければ、特定のauthorやタグの記事だけを抽出するガイドも掲載いただけないでしょうか
    よろしくお願いします!

  12. アバター画像 名前:わいひら 投稿日:2020/03/14(土) 22:30:18 ID:2c0280140

    記事内のコードはあくまでサンプルコードです。
    個別機能については、自身でお願いいたします。
    難しいようであれば、プロもしくは業者にご依頼ください。

  13. 名前:ゴウ 投稿日:2020/05/19(火) 09:02:19 ID:d46b76465

    今回、スマートニュースへの配信を行うための対応を探していたところ、こちらのページにたどり着きました。

    現在、記事に記載されているフィードをスマートニュースのチェックツールにかけると
    エラーが表示されてしまいます。

    ■使用したフィード
    https://wp-cocoon.com/?feed=smartnews

    ■エラー内容。
    HTTP Content-Typeヘッダが非推奨です。HTTPレスポンスのContent-Typeヘッダーは application/rss+xml, application/atom+xml, application/xml, text/xml のいずれかを指定してください。

    スマートニュース側の仕様が変わってしまった可能性があるのですが、こちらの対処方法ってありますか?

  14. アバター画像 名前:わいひら 投稿日:2020/05/19(火) 17:51:10 ID:71ff5272b

    一応、最初にお断りしておくと、スマートニュースチェックツールに出てくるのはWarningつまり警告であって、エラーではありません。

    一般的なツールでの警告の取り扱いについては、エラーではないので、採用はされるとは思います(スマートニュースの仕様はわからないですが)。

    加えて、ヘッダーのContent-Typeにも、application/rss+xmlは問題なく割り当てられているようです。
    https://seocheki.net/http-header.php?url=https%3A%2F%2Fwp-
    僕はなんでこの設定で警告が出るのか、ちょっとわからないです。

    Content-Typeの変更コード部分については、以下の部分になるので警告が出ないContent-Typeを探ってみてください。

    header( ‘Content-Type: ‘ . feed_content_type( ‘rss2’ ) . ‘; charset=’ . get_option( ‘blog_charset’ ), true );

  15. 名前:ゴウ 投稿日:2020/05/20(水) 06:44:15 ID:161ba2422

    わいひら様

    ご質問の件、ご回答いただきまして、ありがとうございました。

    警告と出る点については、すっかりエラーだと思い込んでしまい失礼しました。

    が、スマートニュースにも問い合わせしてみたのですが、警告が出ないようにして対処して欲しいと言われてしまいました・・・このまま進められたらよかったんですけど。

    >Content-Typeの変更コード部分については、以下の部分になるので警告が出ないContent-Typeを探ってみてください。

    ご教示いただき、ありがとうございます!
    調べて対応してみようと思います。

  16. 名前:まぁ 投稿日:2020/06/19(金) 08:17:56 ID:22b3ef884

    こちらを拝見してサイトの申請が出来ました。
    ありがとうございました。

    違うサイトの設定をしたのですが、エラー内容に【channel.image.url の URL は形式が不正か、不正な文字を含んでいます】と表示されてしまいました。

    SmartFormat仕様書を確認してもchannel.image.urlが不明でロゴでもないし、サイトアイコンでもなく何を指すのか?と悩んでいます。
    なにかご存知でしたら教えていただけないでしょうか?

    よろしくお願いします。

  17. アバター画像 名前:わいひら 投稿日:2020/06/20(土) 12:39:01 ID:2ec64fee1

    これに関しては、URLを頂いて実物を見てみないと何とも言えないかもしれません^^;
    修理品の実物がないのに修理が難しいのと同じ感じです。
    ※URLを頂いたとしても、僕も全てのSmartNewsの仕様に精通しているわけではないので、必ずしも問題を解決できるかわからないので、あらかじめご了承ください。

  18. 名前:まぁ 投稿日:2020/06/21(日) 08:53:24 ID:6a03c323c

    わいひら様

    ご回答ありがとうございました。
    先日のまぁです。

    解決しましたのでご報告です。
    ワードプレスのサイトアイコンのファイル名が日本語でしたので英数字に変更して直りました(*^^*)
    お騒がせしました。
    共同で運営しているサイトですので、、、気がつくのが遅くなりました( ;∀;)

    お世話になりました。

  19. 名前:ずみし 投稿日:2020/08/19(水) 13:35:37 ID:a0268bd27

    はじめまして!
    苦戦している中こちらの記事を拝見しまして大変助かっております。

    記事通り設定行い、SmartFormat チェックツールにてチェックを行ったところ下記のエラーが表示されました。

    ■item.content:encoded は必須項目です

    ご存じであれば、解消方法おご教授いただけませんでしょうか。
    よろしくお願いいたします。

  20. アバター画像 名前:わいひら 投稿日:2020/08/22(土) 11:54:24 ID:30e89959b

    それに関しては、実際のフィードのURLを提示していただいて、実際にどこにどのようなエラーが出ているかを見てみないと、ちょっと何とも言えないです。
    ただ、実物を見たとしても必ずしも原因が分かるという保証はできませんので、あらかじめご了承いただければ幸いです。

  21. 名前:なつむぎ 投稿日:2020/09/12(土) 08:59:19 ID:f9a24d61a

    こんにちは、スマートニュースへの配信を行いたいと思い参考にさせていただきました!cocoon使用です。

    スマートニュースのチェックツールにはエラーが表示されなかったので申請したのですが、スマートニュース メディアリレーション事務局から修正を2か所指摘されたのですがわからなかったのでご教授していただければ幸いです。

    対象SmartFormatURL:https://gakirog.com/?feed=smartnews

    指摘事項1・リンク誘導文の削除
    指摘事項2・記事内の画像に不備(アイコン)

    そもそもRSSがよくわかっていないのでどこをどう直せばいいかわからない状態です!
    勉強不足で申し訳ありませんが、よろしくお願いいたします。

  22. アバター画像 名前:わいひら 投稿日:2020/09/14(月) 19:54:59 ID:7a728ea34

    申し訳ないですが、エラーチェックでエラーが出ていないことと、指摘されている内容があまりにもざっくりとしすぎて具体的ではないので、僕もわからないです。

  23. 名前:なつむぎ 投稿日:2020/09/15(火) 11:30:51 ID:6ab2adf41

    わいひら様
    ご返信ありがとうございます。

    指摘事項がざっくりとしすぎていて申し訳ありません!

    指摘事項①はフィード内でリンクは削除出来ているそうなのですが、記述がそのままになってしまうそうです。

    指摘事項の②の方は吹き出しの時の自分のアイコンが大きすぎるようです。

    ②の方は小さいアイコンに変更すればいいかと思いますが、①の方がわかりません。
    対応の仕方はありそうですか?

    分かりにくくて申し訳ありません。返答頂ければ幸いです。

  24. アバター画像 名前:わいひら 投稿日:2020/09/26(土) 12:04:11 ID:f1d6cfe1c

    指摘事項①はフィード内でリンクは削除出来ているそうなのですが、記述がそのままになってしまうそうです。

    申しわけないですが、これの意味がやっぱりわからないです。
    「記述がそのまま」というのがどういう状態なのかの説明がないので。

  25. 名前:なつむぎ 投稿日:2020/09/26(土) 12:38:54 ID:6cc8ab200

    わいひら様

    返信ありがとうございません。
    勉強不足で申し訳ありません。

    スマートニュース確認したところブログカードのドメイン・投稿日などの文字が残ってしまう内容でした。
    コクーンフォーマルのSmartNewsフィードからのブログカード内文字の削除の記事を読んで対応が出来たと思います。

    ありがとうございました。

  26. 名前:なつむぎ 投稿日:2020/09/26(土) 12:40:08 ID:6cc8ab200

    返信ありがとうございません×

    返信ありがとうございます。の間違いです。

    何度もコメント申し訳ありません。

  27. アバター画像 名前:わいひら 投稿日:2020/09/26(土) 14:08:04 ID:f1d6cfe1c

    なるほど。
    ブログカードリンク内のテキストが全部残ってしまうと、確かに不自然な文章になってしまいますね。
    去年のことなので、完全に忘れていましたが以下のような対応方法も、Cocoonフォーラム内にあったんですね。
    https://wp-cocoon.com/community/postid/24925/
    教えていただきありがとうございます。

    Cocoonテーマの方も、このように対応しておこうと思います。

  28. 名前:ダイ 投稿日:2020/11/04(水) 20:25:46 ID:d2b8c2460

    はじめまして。

    いつも参考にさせていただいています。

    SmartNewsのフィードについてなのですが。

    結果:Invalid

    エラー内容:Failed to parse XML at line 1 column 3. The XML is probably invalid due to bad syntax or illegal characters. Excerpt near invalid part: “……”

    と表示されて困っています・・・。

    どの個所に原因があるのでしょうか??

    お手数ですが、ご返答いただければ幸いです。

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

  29. アバター画像 名前:わいひら 投稿日:2020/11/27(金) 18:15:59 ID:2b411ec7d

    申し訳ないですが、当記事はあくまでサンプルコードなので、出てくる問題については自己責任でお願いいたします。
    いずれにせよ、エラーメッセージだけかとちょと何とも言えないです。

  30. 名前:ARUNON 投稿日:2020/12/19(土) 10:17:00 ID:57cdb6b80

    わいひら様
    simplicityには大変お世話になりました。

    SmartNewsに対応させたくて半年以上四苦八苦しているのですが今だにうまくいきません。
    大変に恐縮ですが、エラーの原因や対策などもしわかることがございましたらご教授いただけると幸いです。

    https://arnon.jp/?feed=smartnews

  31. アバター画像 名前:わいひら 投稿日:2020/12/27(日) 22:28:42 ID:2623db2e1

    以下のようなエラーメッセージが出ているので、Analytics関係の設定に不備があるのではないでしょうか。

    item.snf:analytics の内容を確認してください

    ただ、この記事のサンプルコードは、あくまでサンプルなので、細かなサポートは難しいです。利用する場合は出来れば自己責任でお願いいたします。

  32. 名前:酒井 投稿日:2021/10/14(木) 02:00:06 ID:100d77af4

    はじめまして。
    SmartNewsのフィードについて参考にさせていただきました。

    aタグの除外について、特定のid、もしくはclassが含まれてる場合、そのaタグは有効にしたいのですが、
    phpでstrposを使って特定の文字列がある場合aタグは有効というif文を組んでみたものの、記事内の他のaタグまで有効になってしまいわからなくなってしまいました。。

    「対象の場合そのaタグに対してだけを有効にする」というのがわからず、何かいい方法はありますでしょうか。

    サンプルの応用になるのでご教授頂くことが難しいかもしれませんが、phpに詳しくないためヒントだけでも頂けないでしょうか。
    宜しくお願い致します。

  33. アバター画像 名前:わいひら 投稿日:2021/10/16(土) 23:07:20 ID:306ee5369

    そういった処理を書くには、詳しい情報も必要で動作確認にも時間がかかるので、ヒントだけ書きます。あくまで僕だったらそうするみたいな感じです。

    僕の場合、そういう場合は、$contentに対してaタグだけ許可してstrip_tagsを実行します。
    その後、aタグだけpreg_matchで抽出して、目的のaタグだけ残して、その他のaタグは置換して削除するみたいな処理を書くと思います。
    ただ、正規表現は習得が結構大変なので、金銭的に余裕がある場合はクラウドソーシングでプロの方に頼んだ方が楽かと思います。

  34. 名前:酒井 投稿日:2021/10/19(火) 16:02:20 ID:c144f80f6

    ヒント頂きありがとうございました。
    strip_tagsからのpreg_matchへの流れが難しかったので、
    wordpressで「rel=noopener noreferrer」が強制的に付与される点に着目してpreg_matchの条件に追加したら望んだとおりのことができました。
    特定のid、もしくはclassを付与して除外しようと思ったんですが、「noreferrer」が含まれてるものが除外したい条件に合致していたためこれを利用した感じです。
    ヒントから派生してなんとかできました、ありがとうございました。

  35. 名前:arapon 投稿日:2023/05/04(木) 12:10:11 ID:911680182

    初めまして。
    こちらの記事のおかげで助かりました。
    それでお伺いしたいのですが、現在アナリティクスがあと30日ほどでga4に移行となるのですが、
    移行した場合、smartnews.phpのアナリティクスの記述はどのようにすれば良いのでしょうか?

  36. アバター画像 名前:わいひら 投稿日:2023/05/05(金) 11:09:08 ID:62e0a147c

    対応方法はこちらに書いてありました。

    Google Analytics 4には対応していますか? – SmartNews 媒体運営者サポートサイト
    https://publishers.smartnews.com/hc/ja/articles/6944692770841-Google-Analytics-4%E3%81%AB%E3%81%AF%E5%AF%BE%E5%BF%9C%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%81%8B-

  37. 名前:arapon 投稿日:2023/05/08(月) 00:17:32 ID:ff4b91907

    ご返信誠にありがとうございます。
    上記の対応は実は試してみたのですが、パスが変数処理されていないのか、例えば上記のままで’G-XXXXXXXX、UA-YYYYYYYY-Z の箇所を自分のIDに置き換えても、新しい記事のURLの末尾がnews/12345で出力されてしまうのです。news/12345の箇所だけ削ってみても、ダメでした。

    ‘page_path’:’/news/12345′, の箇所をどう修正して良いのかわからないのです。。

    おそらくそんなに難しくないのかもですが、初心者すぎてわかりません(汗)

  38. アバター画像 名前:わいひら 投稿日:2023/05/12(金) 00:04:16 ID:d60ecfe08

    上記の対応は実は試してみたのですが、パスが変数処理されていないのか、例えば上記のままで’G-XXXXXXXX、UA-YYYYYYYY-Z の箇所を自分のIDに置き換えても、新しい記事のURLの末尾がnews/12345で出力されてしまうのです。news/12345の箇所だけ削ってみても、ダメでした。

    すいません。
    上記のままでというのがどの部分を指すのかちょっと分かりませんでした。
    可能であれば実際のコードを貼り付けて頂いてよろしいでしょうか。
    「新しい記事のURLの末尾がnews/12345で出力されてしまうのです。」これは何に対してそのように出力されているということでしょうか。

  39. アバター画像 名前:わいひら 投稿日:2023/05/12(金) 00:11:03 ID:d60ecfe08

    ‘page_path’:’/news/12345′, の箇所をどう修正して良いのかわからないのです。。

    上記のコードではだめでしょうか。
    ※コードがWordPressの仕様でか正常表示されなかったので画像にしてあります。

  40. 名前:arapon 投稿日:2023/05/14(日) 23:20:16 ID:c2818aa00

    ご丁寧なご返信誠にありがとうございます。そして返信が遅れて申し訳ございません。
    上記のままというのは、スマートニュースのサイトにあった

    <![CDATA[

    window.dataLayer = window.dataLayer || [];
    function gtag(){dataLayer.push(arguments);}
    gtag(‘js’, new Date());

    gtag(‘config’, ‘G-XXXXXXXX’,{
    ‘page_path’:’/news/12345′,
    ‘page_referrer’:’http://www.smartnews.com/’,
    ‘campaign_source’:’SmartNews’,
    ‘campaign_medium’:’app’
    });
    gtag(‘config’, ‘UA-YYYYYYYY-Z’,{
    ‘page_path’:’/news/12345′,
    ‘page_referrer’:’http://www.smartnews.com/’
    });

    ]]>

    のことです。これをIDだけ置き換えてダメでした。

    わいひらさまが書いてくれたコードをちょっと試してみようと思います。明日以降になってしまうと思いますが、確認できたらまたコメントさせていただきます。
    ご丁寧なご対応、誠に感謝しております。

  41. 名前:arapon 投稿日:2023/09/28(木) 22:34:48 ID:21f7ab753

    かなり遅レスになってしまったのですが、わいひら様の書いて頂いたコードでバッチリでした。お忙しい中本当にありがとうございます!

  42. アバター画像 名前:わいひら 投稿日:2023/09/28(木) 22:54:39 ID:3ecad8f6e

    うまくいったようで良かったです!