-
投稿者投稿
-
2023年3月22日 7:22 PM #120393
【お使いの Snow Monkey のバージョン】バージョン: 19.2.0
【お使いの Snow Monkey Blocks のバージョン】バージョン 18.2.0
【お使いの Snow Monkey Editor のバージョン】(使っていない)
【お使いのブラウザ】Google Chrome
【当該サイトのURL】(未公開)### 実現したいこと
WordPressで構築された外部サイトのカスタムフィールドの情報を
Snow Monkey Blocks の「RSSブロック」に表示したいと考えています。### 試したこと
フォーラムの「サブディレクトリにインストールしている別WPの記事サムネイルをRSSで取得したい」トピックを見て、アイキャッチ画像と目的のカスタムフィールドの値をRSSフィードに含めるところまでできました。
※アイキャッチ画像は表示されました!http://www.kfca.jp/kikaku/feed/
ここで<postmeta>
として配信されている部分を「RSSブロック」に出力したく、
以下のように My Snow Monkey であれこれ試してみたのですが、力不足で実現できませんでした。add_filter( 'snow_monkey_template_part_render_template-parts/loop/rss', //rssが対象 function( $html ) { ob_start(); ?> <div class="event-meta"> <?php // ここをどうすれば良いかわかりませんでした;; ?> </div> <?php $postmeta = ob_get_clean(); return str_replace( '</header>', '</header>'.$postmeta, $html ); return $html; } );
お力を貸していただけますと幸いです。
よろしくお願いいたします。♥ 0Who liked: No user2023年3月22日 9:17 PM #120400コールバック関数の第3引数
$vars
の中の_item
にSimplePieItem
という RSS のアイテムを解析してオブジェクトにしてくれたやつが入っています。その中にちゃんとpostmeta
というデータも含まれているみたいだったのですが、僕も SimplePie に詳しくなくて、ちょっとこれがベストなのか自身はないのですが動いているみたいなので共有します。$vars['_item']->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['postmeta'][0]['data']
という感じでデータがとれるみたいです。add_filter( 'snow_monkey_template_part_render_template-parts/loop/rss', function( $html, $name, $vars ) { $postmeta = ! empty( $vars['_item']->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['postmeta'][0]['data'] ) ? $vars['_item']->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['postmeta'][0]['data'] : false; // postmeta がなければ何もせずに return if ( ! $postmeta ) { return $html; } ob_start(); ?> <div class="event-meta"> <?php echo esc_html( $postmeta ); ?> </div> <?php $postmeta = ob_get_clean(); return str_replace( '</header>', '</header>' . $postmeta, $html ); return $html; }, 10, 3 );
2023年3月22日 10:53 PM #1204102023年4月25日 3:02 PM #122120こちらでサポートいただいたサイトが無事に公開できました。
トップページの「新着イベント」部分と、イベント情報ページでこのトピックのRSSブロックを使っています。
改めまして、ありがとうございました! -
投稿者投稿
- トピック「外部WordPressサイトのRSSに含まれるカスタムフィールドの情報をRSSブロックに表示したい」には新しい返信をつけることはできません。