goodtimes
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: 投稿ページとその他のページの区別方法mizubeさん
すみません、名称をわたしが好き勝手に呼んでいるいるからこんな事に・・
そうです、投稿ページは、ダッシュボード->設定->表示設定で設定する「投稿ページ」です>私の経験では、 is_page(‘slug’) が少なくとも有効だったと思うので、
slugって、なんですか?
ナメクジという意味しかわからなくて、想像がつかないのですが…
記事を判別するひとつの方法ってことですよね?(IDやカテゴリなどと同様に?)
教えていただけませんでしょうか?あと、あまり意味のあることじゃないかもしれませんが、念のため書きます
トップページの判別?(分岐?)は、is_home()は効かなかったんです
なので、is_front_page()にしてます
※トップも、ダッシュボード->設定->表示設定で、固定ページのトップページで設定していますで、トップページなら○○、投稿ページなら△△、それ以外のページなら××・・・の分岐ですが
以下のようにしています※サイドバーではis_home()だったりと挙動が異なっていたような記憶が・・のくだりに反応して書いているだけなので、まったく見当違いなら無視してください
******************************** トップページだとサイドバー非表示 @ page.php ******************************** <?php if (is_front_page()) { ?> <?php get_footer(); ?> <?php } else { ?> <?php get_sidebar(); ?> <?php get_footer(); ?> <?php } ?> ******************************** (固定)ページだとサイドバーに子ページ一覧表示 @ sidebar.php #投稿ページは子ページなし&トップページはサイドバー自体なしなので、分岐はしてません ******************************** <!-- ページ表示は5階層まで --> <!-- 選択ページの最上位$ancestorを取得 --> <?php $ancestor = array_pop(get_post_ancestors($post->ID)); ?> <?php if(empty($ancestor)) { /*選択ページが最上位*/ wp_list_pages('depth=5&child_of=' . $post->ID . '&title_li=<h2>' . __('Pages', 'kubrick') . '</h2>' );} else { /*選択ページが最上位以外*/ wp_list_pages('depth=5&child_of=' . $ancestor . '&title_li=<h2>' . __('Pages', 'kubrick') . '</h2>' ); }?> ******************************** 投稿ページだとサイドバーにカテゴリ一覧表示 @ sidebar.php ******************************** <!-- 開発実績ページのみカテゴリ表示 //ページじゃないとしか分岐不能?要注意かも --> <?php if (!(is_page())) { wp_list_categories('show_count=1&title_li=<h2>' . __('Categories', 'kubrick') . '</h2>'); }?>
フォーラム: 使い方全般
返信が含まれるトピック: 投稿ページとその他のページの区別方法mizubeさん、おはようございます
ご丁寧に、どうもありがとうございます
私の言葉に合わせてもらってすみませんで、is_single()とis_archive()で試してみましたが、どちらも表示されませんでした
私の区別したい投稿ページは、
・カテゴリー関係なしに全投稿記事が表示されている
・シングル記事ではないので、当然・・なのですね・・?
なので、ない知恵を振り絞って、「ページじゃなければ」(!(is_page())と書くとうまくいきました
ただ、ページとか投稿ページとかアーカイブとか、wordpressのやりかた?がよくわかってないのに「ページじゃなければ」で逃げたのが非常に気にかかります
もし、「それはこういうとこでも引っかかる可能性がある」ようなことがあったら教えていただけませんか?
ちなみに、試した結果はこんな感じでした。他にもテストするところありますか・・?
・is_single()は、
– 投稿タイトルをクリックしてその記事のみを表示させると、有効でした・is_archive()は、
— カテゴリリンクをクリックして、カテゴリのアーカイブ一覧?を表示させると、有効でした・!is_page()は、
— is_archive()が有効のとき プラス
— 投稿記事が投稿記事の古い順に表示されている状態で有効でしたフォーラム: 使い方全般
返信が含まれるトピック: 選択ページの一番上の親のID取得方法こんばんは
皆さんが教えてくださって、無事、
・選択されているページの最上位を取得
・サイドバーに、選択している最上位より下(最上位含まない)子供一覧表示ができました!
ありがとうございます!同じことをやりたい方がもしいらっしゃったときのために書いておきます
(完全じゃないと思うので、ご注意です)
‘
<!– ページ表示は5階層まで –>
<!– 選択ページの最上位$ancestorを取得 –>
<?php $ancestor = array_pop(get_post_ancestors($post->ID)); ?>
<?php if(empty($ancestor)) { /*選択ページが最上位*/
wp_list_pages(‘depth=5&child_of=’ . $post->ID . ‘&title_li=<h2>’ . __(‘Pages’, ‘kubrick’) . ‘</h2>’ );}
else { /*選択ページが最上位以外*/
wp_list_pages(‘depth=5&child_of=’ . $ancestor . ‘&title_li=<h2>’ . __(‘Pages’, ‘kubrick’) . ‘</h2>’ ); }?>
‘********
mizubeさん
********
in_arrayがなにをする関数か、$targetIDがなぜ空で、選択ページの名前がでてくるのか(当然でしたね・・)理解できました
ありがとうございます!フォーラム: 使い方全般
返信が含まれるトピック: 選択ページの一番上の親のID取得方法mizubeさんおはようございます
丁寧なご回答ありがとうございます
なるほどなるほどです!
変数を文字列の外にだしてやったら(’のなぞはかなり多くのことを解決してくれました。wordpressではなく、PHPを先に勉強します)選択している親子の階層表示が現れました!ちょっと急ぎの別件をやることになって、教えてくださったこと(in array のifが抜けてたこととか)すべて理解&実践できていませんが、(別件も理解&実践も)長くなりそうなので、さきにお礼まで
ここはまだ未解決のままにさせてください自力で最初の投稿で質問したことがすべて解決すれば、改めて解決済みにいたします
といってもまた来ると思いますが・・その際はまたご指導いただければうれしいですフォーラム: 使い方全般
返信が含まれるトピック: 選択ページの一番上の親のID取得方法jim912さん、taikikenさん、mizubeさん、こんばんは
ご回答ありがとうございますjimさんとmizubeさんがご提示くださった方法をやってみました
taikikenさんがご教示くださったテーマはK2 themeのクレジット?を入れないといけない+今の私には読解が難しくて手を付けれていません… すみません====
で、jim912さんとmizubeさんの方法は、文章の中でなにをしているか理解&推測できました
できたんですが、いざ実践すると階層がまったく表示されません
画面上にエラー文章は出てませんどちらの方法でも、最上位の親IDは取得できました
echoで取得したIDの表示確認もしました************************************************************
<?php wp_list_pages('depth=5&child_of=$ancestor&title_li=<h2>' . __('Pages', 'kubrick') . '</h2>' ); ?>
************************************************************肝心な階層表示の文章(sidebar.php)がこれなんですが、、、
なにがおかしいんでしょうか・・?
表示されないということは、文章にエラーがあるからムシしているということですよね?
(Jimさんのときは Jimさんが教えてくださった変数名にしています)ちなみに、child_of=34など手動で数字を入れると表示されます
別件で2点質問です
・ 上記の関数?で、そもそも ‘ はなにを意味しますか?
・ mizubeさんが教えてくださったget_post_ancestors(素敵な名前ですね!)は
どういうところに載っているんでしょう?
codeXのタグ一覧?などを見たのですが見つけられませんでしたよろしくお願いします
::::::::::::::::::::
::::::::追記:::::::::
::::::::::::::::::::
逆クォートで囲ったんですが、うまく枠つきで表示されないので、目立つようにしました
読みにくかったらすみません::::::::::::::::::::
::::::::追記:::::::::
::::::::::::::::::::
すみません書き忘れです
mizubeさんの教えてくださった
************************************************************
<?php in_array( $targetID, get_post_ancestors($post->ID )) ; ?>
this page is the child of…<?php echo get_the_title($targetID); ?>
************************************************************
を実践すると(日本語がなんか化けるんで、英語でしてます)、表示される$targetIDの中身は
選択されているページの名前(親ではなく本人)が出ます
これもなぜでしょうか・・?
(get_post_ancestors($post->ID)で、現在選択されているページIDの先祖たちを$targetIDにいれてる、と理解してますが、あってますか?)フォーラム: その他
返信が含まれるトピック: 書き込みテストをさせて下さいフォーラム: その他
返信が含まれるトピック: 書き込みテストをさせて下さいすみません、わたしも書き込みテストさせてください
思ったとおりに、この質問画面で表示されるのかテストです- A
- A01
- AA01_1
- AAA01_1_1
- AA01_2
A02
AA02_1
AA02_2フォーラム: テーマ
返信が含まれるトピック: ホームとその他の動きを異なるものにしたい if文すみません、自己解決いたしました
is_homeではなく is_front_pageにしたら、動いてくれました
書いたところは、MONKMASTERさんがおっしゃてたpage.phpですありがとうございました!
<?php if (is_front_page()) { ?> <?php get_footer(); ?> <?php } else { ?> <?php get_sidebar(); ?> <?php get_footer(); ?> <?php } ?>
フォーラム: テーマ
返信が含まれるトピック: ホームとその他の動きを異なるものにしたい if文MONKMASTERさん、こんにちは
早速のご回答ありがとうございます教えてくださったように、index.phpを元に戻して、page.phpのget_sidebarを削除しました
すると、
・ 投稿記事が出てくるページ?のみがサイドバーつき/それ以外はサイドバーなし
と切り替わりました
(page.phpは、投稿記事が表示されるページをつかさどるファイルなのですね?)で、結果からいいますと、これではわたしの思っているようには動いていません
私の言い方が悪かったです お手間を取らせてしまったのに、すみません…私がどうしようとしているかと申しますと
(素人ながらに関係ないことだから書かないでおこうと気を利かせたつもりがあだになりましたので、全部書きます。今回の件には必要ないよ!というところは無視してくださればと思います)===
1.6~7階層くらいのページで構成される(親ページは6くらい、子などを入れた全ページはおそらく40~50くらい)2.親ページの一つとして「トップページ」を作る(この下に子はいない)
3.親ページの一つとして「投稿」されていくページを作る(この下に子はいない)
4.ダッシュボードの設定>表示設定>トップページの表示で、トップページと投稿ページをそれぞれ2.3.のページを指定する
5.メインページ(=HOME)のときは、サイドバーを非表示にする
6.親ページ名称のみを抜き出して、ヘッダー下に横並びでナビボタンを作る
7.サイドバーには、選択された親ページの子供たち名称を表示
8.↑ただし、その中でもある一定以上の階層(子の子の子の子の子など)は非表示
9.8.で非表示にした子たちは、ヘッダーらへんで表示(「よくある質問」とか)
10.特定の階層の子供を選択したらナビボタン内容、ページレイアウトが変わる
===
以上の10点が今現在(としかいえないのが申し訳ないのですが)やろうと思っている点です
で、今回お聞きしようとしたのは、5.のHOMEのときのサイドバー非表示方法、だったのですが
投稿しないページは、メインページだけではないので
せっかく教えていただいたものが使えないのでは?と思っています
(この推測もあってるかわかりませんが・・・)長々書きましたが、うまく伝わりますでしょうか・・?
以上の状態で、わたしがやりたい「HOMEはサイドバーを消す」ということは
どうすれば実現できるでしょうか??