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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1780閲覧

固定ページに設定したショートコードがそのまま表示される

murama2

総合スコア113

WordPress

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/03/05 05:58

編集2020/03/05 10:22

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]

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

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

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

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

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

kei344

2020/03/05 07:37

固定ページの本文出力部分のコードも追記してください。
guest

回答1

0

自己解決

[multi][/multi]の間にあった場合出力されなかったので、下記の用に新着情報出力部分は、[multi][/multi]に含めないように対応しました。
PC・スマホの切り分けはCSSで調整しております。

[multi]
PC用のコードコンテンツ
[/multi]

<div class="pc_block"> ← CSSでPC・スマホ表示を制御する用 [newspost cat="12" show="3"] </div> [multi] PC用のコードコンテンツ2 [/multi]

投稿2020/03/05 23:47

murama2

総合スコア113

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問