WordPressのショートコードを固定ページに使用していたのですが、下記ショートコードだけそのまま表示されてしまいます。
ショートコードの[]が大文字でないかなどネットで調べたことは試してみたのですが、改善されない状態です。
どう設定すれば、表示されるようになりますでしょうか。
WordPressバージョン:5.2.3
プラグイン:Multi Device Switcher
※マルチデバイススイッチャーでスマホにも対応
■functions.phpの内容
<?php /* 最新情報ショートコード [newspost cat="x" show="3"] */ add_shortcode('newspost', 'show_Cat_Posts_func'); 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, 'post_type' => 'post' ); $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 do_shortcode($output); } //アイキャッチ画像 add_theme_support( 'post-thumbnails' ); //抜粋文字数変更 function new_excerpt_mblength($length) { return 100; } add_filter('excerpt_mblength', 'new_excerpt_mblength'); //抜粋文末文字変更 function new_excerpt_more($more) { return '...'; } add_filter('excerpt_more', 'new_excerpt_more'); //ウィジェット追加 if (function_exists('register_sidebar')) { register_sidebar(array( 'name' => 'サイドバー1', 'id' => 'sidebar1', 'description' => 'ブログ用', 'before_widget' => '<div class="cont-box">', 'after_widget' => '</div>', 'before_title' => '<h2>', 'after_title' => '</h2>' )); } //スラッグ取得 function get_page_child_uri($page_id) { $page = get_post($page_id); return $page->post_name; } // 「投稿」名称変更 function change_post_menu_label() { global $menu; global $submenu; $menu[5][0] = 'BLOG投稿'; $submenu['edit.php'][5][0] = '投稿一覧'; $submenu['edit.php'][10][0] = '新しい投稿'; $submenu['edit.php'][16][0] = 'タグ'; //echo ”; } add_action( 'admin_menu', 'change_post_menu_label' ); //headの不要なものとをトル remove_action('wp_head','wp_generator'); remove_action('wp_head', 'print_emoji_detection_script', 7 ); remove_action('wp_print_styles', 'print_emoji_styles' ); remove_action('wp_head','rest_output_link_wp_head'); remove_action('wp_head','wp_oembed_add_discovery_links'); remove_action('wp_head','wp_oembed_add_host_js'); //固定ページの自動整形無効 function disable_page_wpautop() { if ( is_page() ) remove_filter( 'the_content', 'wpautop' ); } add_action( 'wp', 'disable_page_wpautop' ); //サイトURLを取得 add_shortcode('url', 'shortcode_url'); function shortcode_url() { return get_bloginfo('url'); } //アップロード・ディレクトリのパスを取得 add_shortcode('upload', 'shortcode_up'); function shortcode_up() { $upload_dir = wp_upload_dir(); return $upload_dir['baseurl']; } function shortcode_templateurl() { return get_bloginfo('template_url'); } add_shortcode('temp_url', 'shortcode_templateurl'); //投稿メディア設定 add_filter( 'image_send_to_editor', 'remove_image_attribute', 10 ); add_filter( 'post_thumbnail_html', 'remove_image_attribute', 10 ); function remove_image_attribute( $html ){ $html = preg_replace( '/(width|height)="\d*"\s/', '', $html ); $html = preg_replace( '/class=[\'"]([^\'"]+)[\'"]/i', '', $html ); $html = preg_replace( '/title=[\'"]([^\'"]+)[\'"]/i', '', $html ); $html = preg_replace( '/<a href=".+">/', '', $html ); $html = preg_replace( '/</a>/', '', $html ); return $html; } add_action( 'admin_print_styles', 'admin_css_custom' ); function admin_css_custom() { echo '<style>.attachment-details label[data-setting="caption"], .attachment-details label[data-setting="description"], div.attachment-display-settings { display: none; }</style>'; } //店舗紹介ニュース一覧 function Include_my_php($params = array()) { extract(shortcode_atts(array( 'file' => 'default' ), $params)); ob_start(); include(get_theme_root() . '/' . get_template() . "/$file.php"); return ob_get_clean(); } add_shortcode('myphp', 'Include_my_php'); ?>
■固定ページ
[multi][/multi]の間に新着情報出力用のショートコードを入れると表示されないみたいです。
[multi][/multi]がない固定ページでは正常に表示されるのを確認いたしました。
※ショートコード以外の内容は割愛させていただきます。
[multi device="smart"] スマホ用のコード [/multi] [multi] PC用のコード [newspost cat="12" show="3"] [/multi]
回答1件
あなたの回答
tips
プレビュー