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

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

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

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

Q&A

0回答

1312閲覧

Advanced Custom Fieldsを使って投稿画面の簡略化をしたいのですが上手く出来ません

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

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

1グッド

1クリップ

投稿2016/01/05 14:55

編集2016/01/06 09:24

現在、下記のようなコードをプラグイン化し、外部RSSを取得して、投稿画面にショートコードを記入することで、投稿ページに外部のRSSを表示しています。

これを第三者にしてもらうに当たり、外部RSSのフィードと表示する件数のみを入力してもらうことで、誰にでもできるような簡潔な作業にしたいと思い、Advanced Custom Fieldsを使って投稿画面の簡略化を試みているのですが、いくらやってもコードそのままが表示されてしまい、外部RSSが表示されず困っております。

Advanced Custom Fieldsにこだわるつもりはないのですが、自分が出来そうな範囲ですと、他にこれと言った方法も思いつかない状態でして、そこも含めてどなたかお知恵を貸して頂けないかと思い、投稿させて頂きました。宜しく御願い致します。

ショートコードは[paka3Feed url="外部RSS" count=表示数]となっております。

<?php add_shortcode("paka3Feed",paka3_shortcode_rss); add_action('wp_enqueue_scripts','paka3_shortcode_rss_css'); //本体 function paka3_shortcode_rss($atts){ //ショートコードに定義した値を取得&デフォルト値 extract( shortcode_atts( array( 'url' => "http://yotsuba-d.com/blog/feed/", 'count' => 3 ), $atts ) ); //$urlが空の場合はfalseを返す if(!$url) return false; //*エスケープ $url = sprintf(esc_html("%s"),$url); //ここからfeedを取得して行きます。 add_filter ( 'wp_feed_cache_transient_lifetime' , 'return_1800' ); $feed = fetch_feed( $url ); remove_filter( 'wp_feed_cache_transient_lifetime' , 'return_1800' ); //*表示数を設定 if ( ! is_wp_error( $feed ) ) { $maxitems = $feed->get_item_quantity( $count ); $rss_items = $feed->get_items( 0, $maxitems ); } //サイト名とサイトURLの取得 $title = $feed->get_title(); $site_url = $feed->get_permalink(); ///表示数 $str=""; if ( $maxitems > 0){ foreach ( $rss_items as $item ){ $f_link = esc_url( $item->get_permalink() ); $f_date = sprintf( __( '%s', 'my-text-domain' ), $item->get_date('j F Y | g:i a') ); $f_title = esc_html( $item->get_title() ); $f_content = mb_strimwidth(strip_tags($item->get_content()), 0, 70, "...","UTF-8"); if(preg_match_all('/<img.*?src=(["\'])(.+?)\1.*?>/i',$item->get_content(),$img_array)){
$site_img = $img_array[2][0]; } if(!preg_match('/^http(s)?:\/\/[^\/\s]+(.*)$/',$site_img,$r)){ $site_img = $site_url.$site_img; } //itemのhtmlの生成 $str .= <<<EOS <div class="feed_item"> <a href="{$f_link}" title="{$f_date}" rel="nofollow" > <div class=feed_item_img><img src = {$site_img} /></div> <h4>{$f_title}</h4> <p>{$f_content}</p> </a> </div>

EOS;
}
}
//全体の
echo <<< EOS
<div class="feed_block">
<h2><a href="{$site_url}" rel="nofollow" >{$title}</a></h2>
{$str}
</div>
EOS;
}
function return_1800(){
return 1800;
}

dsk👍を押しています

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問