今まで表示されていたカテゴリーを指定して、投稿を表示させるショートコードが動作しなくなり、ショートコードがそのまま表示されるようになってしまいました。
原因が分からない状態でお力をお借りできればと思います。
同じページに他のショートコードを使用しているのですが、そちらは正常に処理が動作しており、出力されております。
WordPressのバージョンは、4.9.6です。
固定ページ内設置ショートコード
[newspost cat="12" show="3"]
■functions.php
/* 最新情報ショートコード [newspost cat="x" show="3"] */ function show_Cat_Posts_func($atts) { global $post; $output = ""; extract(shortcode_atts(array( 'cat' => 2, // デフォルトカテゴリーID = 1 'show' => 3 // デフォルト表示件数 = 3 ), $atts)); $cat = rtrim($cat, ","); // get_postsで指定カテゴリーの記事を指定件数取得 $args = array( 'cat' => $cat, 'posts_per_page' => $show ); $my_posts = get_posts($args); // 上記条件の投稿があるなら$outputに出力、マークアップはお好みで if ($my_posts) { // カテゴリーを配列に $cat = explode(",", $cat); $catnames = ""; foreach ($cat as $catID) : // カテゴリー名取得ループ $catnames .= get_the_category_by_ID($catID).", "; endforeach; $catnames = rtrim($catnames, ", "); $output .= '<ul class="news-list">'."\n"; foreach ($my_posts as $post) : // ループスタート setup_postdata($post); // get_the_title() などのテンプレートタグを使えるようにする $output .= '<li id="post-'.get_the_ID().'" '.get_post_class().'><a href="'.get_permalink().'"><time>'.get_the_time('Y/n/j').'</time>'.get_the_title()."</a></li>\n"; endforeach; // ループ終わり $output .= "</ul>\n"; } // クエリのリセット wp_reset_postdata(); return $output; } add_shortcode('newspost', 'show_Cat_Posts_func');
その動作しないショートコードを他の投稿や固定ページへ挿入した場合はどうですか?それでも表示されなければコードエラーですし、他のページで動作するなら、他のショートコードとの競合なども考えられますが・・・少し検証してみてください
あなたの回答
tips
プレビュー