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

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

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

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

Q&A

解決済

2回答

829閲覧

wordpressで固定ページを条件によって、入れ替えて表示したい

moonYong

総合スコア14

WordPress

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

0グッド

0クリップ

投稿2019/07/10 23:10

wordpressで、固定ページを表示する場所で条件によって固定ページを入れ替えたと思っています。

if (条件)
固定ページAを表示する場所
else
固定ページBを表示する

固定ページAのスラッグを abc としたら、固定ページBのスラッグは abc-1 にする規則をつけておきます。

if (条件)
固定ページAを表示する
else
$slug=固定ページAからスラッグを取得する
$slug=$slug+"-1"
この$slog名の固定ページ(固定ページB)を表示する

文法もよくわかっていないので、細かいエラーの話は別にして、

Q1.このコードを書く場所はどこが適切なのか教えてください。

Q2.スラッグ名を指定して固定ページを表示する方法を教えてください。

わかりにくい質問ですみません。
よろしくお願いします。

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

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

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

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

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

guest

回答2

0

Q1.このコードを書く場所はどこが適切なのか教えてください。

page.phpで良いと思います。

Q2.スラッグ名を指定して固定ページを表示する方法を教えてください。

http://hogehoge.com/abc/
とslug名を指定すれば固定ページは表示されませんか?

投稿2019/07/10 23:17

yukikp

総合スコア797

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

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

moonYong

2019/07/10 23:22

yukikpさん おはようございます。 ご回答ありがとうございます。 Q2に関して 関数名("slug") みたいにして固定ページを表示する関数を呼び出したいです。 こんな関数はありますか?
yukikp

2019/07/10 23:36

>固定ページを表示する関数 という意味がいまいちはっきりしないのですが、例えば、 page-xyz.phpファイルに <?php display_page_function( 'abc' ); ?> と書いておき、 http://hogehoge.com/xyz/ という感じで固定ページxyzにアクセスが来たときに、強制的にabcを表示させたいという事でしょうか?
yukikp

2019/07/10 23:49

それと「固定ページを表示」という言い方をすると、htmlタグで囲われた(headタグやbodyタグを含む)すべてを意味するのか、それとも$post->post_contentとかthe_content()で取得できる内容を指すのか分からないので、そこら辺も書いてください。
moonYong

2019/07/11 01:04

yukikpさん 返信ありがとうございます。 固定ページの本文の内容だけを条件によって、入れ替えたいです。 まず、WordPress初心者であることをお伝えしておきます。 やりたいこと概要 ローカルストレージに値(0 or 1)を設定して保持する。 固定ページAの本文をつくっておく。(slug=abc) 固定ページBの本文をつくっておく。(slug=abc-1) 固定ページCの本文をつくっておく。(slug=cde) 固定ページDの本文をつくっておく。(slug=cde-1) 固定ページAをメニューに登録しておく。 固定ページCをメニューに登録しておく。 <通常の場合> メニューで固定ページAが選択されたら固定ページAが表示される。 メニューで固定ページCが選択されたら固定ページCが表示される。 <改造したい内容> 固定ページA(またはC)がメニューで選択された時 if (ローカルストレージに保存した値が0なら) 固定ページA(またはC)を表示 スラッグを引数にして関数で表示したい(slug=abc または slug=cde) else 固定ページB(またはC)を表示 スラッグを引数にして関数で表示したい(slug=abc-1 または slug=cde-1) // もし値が1なら登録した固定ページ A または C を表示する if ($storage) // スラッグを引数にして表示する dispfunc('slug'); // 値が0ならメニューに登録していない固定ページ B または D を表示する else // A または C のスラッグを得る。こんな関数ありますか? $s = get_slug(); // スラッグに -1 を付加する $s = $s+"-1"; // 固定ページ B または D を表示する, スラッグを引数にして表示する dispfunc($s); こんなイメージなのですが、おわかりになりますか? また、これを page.php にどう書けばよいのかも見当がつきません。 アドバイスをいただけたら幸いです。 よろしくお願いします。
moonYong

2019/07/11 01:05

if (ローカルストレージに保存した値が0なら) の部分は if (ローカルストレージに保存した値が1なら) とするべきでした
guest

0

自己解決

以下の記事を参考に、なんとかなりそうなので解決とします。

https://k3akinori.hatenadiary.org/entry/20131206/1386331385

スラッグ名を引数に表示させる処理は、この記事の
my_page_content()をそのまま使えそうです。

global $post;
$slug = $post->post_name;

でスラッグを取得でき

$slug = $slug."-1";

で "-1"を付加したスラッグ名をつくることができました。

my_page_content()関数本体は function.php に
呼び出しは yukikpさんに教わった page.php におくことで実現できそうです。

ありがとうございました。

投稿2019/07/11 05:51

moonYong

総合スコア14

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問