非公開記事にし、サイト内からは非公開でも記事URLアクセスで閲覧できるように
-
カスタム投稿で記事を投稿しています。
■やりたいこと
1:公開状態を「非公開」にし、記事URLへアクセスした場合404ページではなく、
通常に記事が閲覧できる。
2:且つ「非公開」の記事には特定の文言を表示。※カスタム投稿テンプレート:single-hoge.phpを呼び出して、
content-single-hoge.phpを呼び出しています。
非公開の場合は404.phpが表示されています。single-hoge.phpで404.phpを読み込む分岐があるのかと思えば違うようで、
何をどうすればいいやら困っています。どうすればいいのか、どなたかお力をお貸し願えませんでしょうか。
よろしくお願いいたします。
-
非公開記事は、ログインすれば閲覧できませんか。「記事URLへアクセスした場合通常に記事が閲覧できる。」ことにするのであれば、マルチサイトと組み合わせるのでどうだろう。曜日や時間帯で、表示を切り替えることは難しくないと思いますが、具体的な例を上げてもらえると助かります。
CG様
ご回答大変ありがとうございます。
ログインすれば閲覧できますが、不特定多数のユーザーにも見せたいのです。ECサイトで在庫切れになったので、サイト内からは非表示にして、
google検索からはランディングページとして残しておきたい。
というようなフローなのですが、そこを「非表示」機能で補おうという算段です。どうぞよろしくお願いいたします。
アイテム情報としては残しておきたいということでしょうが、それならわたしも実施していることです。わたしのほうが一点ものなので、売れた時点で非表示にすることはグーグル検索に印象が良くない。また、重複しているのも良いことではないので、商品はカスタム投稿タイプにまとめ、ショートコードで固定ページに引用するスタイルにしています。
CG様
ご回答ありがとうございます。
そういうやり方もあるんですね。
勉強になります。
ただ、もう少し非公開でのやり方を模索したいと思います。
ありがとうございました。ひっくり返した考えではどうでしょう。ページ自体は公開にしておいて、一般訪問者には見せたくない部分、グーグルに検索させないようにショートコードで囲った部分だけを非公開にする。
投稿ステータスが非公開の記事は、管理者しか見ることができませんので
別の方法を考えたほうが簡単ですよ。
https://wpdocs.osdn.jp/%E6%8A%95%E7%A8%BF%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9#.E9.9D.9E.E5.85.AC.E9.96.8B_.28private.29・カテゴリーで、在庫切れを設定して、一覧に表示しない
・カスタムフィールドに在庫「あり」「なし」を設定して、在庫「なし」の場合は、一覧に表示しない
など方法は、いろいろあります。CG様
ご回答ありがとうございます。
ちょっと方向が違うような感じですみません。
公開したページは手を加えず、ステータスの切り替え等で非公開・公開にしたいのです。
且つ、サイト内では検索不能ですがwebでは生きてる、という流れです。
求人サイトとかでもよくあるパターンですね。
募集内容は表示されたままで応募のボタンが無く、
「この求人は終了しました」という表示に切り替わる。
というような展開です。どうぞよろしくお願いいたします。
Rocket Martue様
ご回答ありがとうございます。
仰る通りの方法を試したことがあります。
ページ自体は公開のままで、オン・オフのフィールドをタクソノミーで追加し、
アーカイブページでオフのページを弾くような分岐をしたことがあります。
ですがそれだと、サイト内で非表示にはなるのですが、
ページ総件数を表示する際にカウントされてしまうのです。
プログラミング知識がほとんどありませんので、そこを回避出来れば問題無いのですが。・グーグルには404を返したくない
・ページは生かしておきたい
・サイト内検索などでは引っかからない
・サイト内一覧や人気記事などには非表示上記を達成したいがために悩んでおります。
どうぞよろしくお願いいたします。nobita様
ご回答ありがとうございます。
リンク先ページ拝見いたしました。
知識が薄く理解力が足りないものですみません。
つまり「非公開」にすることで、
case( ‘private’):
printf( $my_status_html, ‘この投稿は、非公開です’ );
のように切り分けて表示されるということでしょうか。
他、future、pendingなどステータスごとにメッセージを切り分けということですね。やりたいことはほぼこれのような気がします。
ステータス「非公開=private」時のみ、content-single-hoge.php
の内容を表示したいのです。
content-single-hoge.phpは、カスタム投稿hogeの詳細ページです。
公開ページはsingle-hoge.phpを呼び出してcontent-single-hoge.phpで表示する流れです。因みにお教えいただいた施策の場合、googleには404を返すことになるのでしょうか。
どうぞよろしくお願いいたします。
因みにお教えいただいた施策の場合、googleには404を返すことになるのでしょうか。
404.phpだけで、表示コントロールを行うだけなのでhttp404になる事はないでしょう、404なら、404.php自体表示されませんよね。
404.phpが表示されるのは、リクエストされたコンテンツがない場合($postがない)以外に、$postが存在しても、非公開になっているため、とか下書きだから、とかいう諸般の事情で404.phpが使われている場合もありますよね。
この諸般の事情をチェックして、404.phpの表示だけを制御してやれば普通の個別投稿ページと同様の表現が可能なんじゃないかと思います。
テンプレートのコントロールだけで、コアの機能を変更しないので、多分、検索だとかの結果は、何もしない場合と同じようになると思います。
まとまらないですが、404.phpをsingle.phpのように使う感じです。
仰る通りの方法を試したことがあります。
ページ自体は公開のままで、オン・オフのフィールドをタクソノミーで追加し、
アーカイブページでオフのページを弾くような分岐をしたことがあります。やりたいことはほぼこれのような気がします。
ステータス「非公開=private」時のみ、content-single-hoge.php
の内容を表示したいのです。single-hoge.php で、オン・オフの条件分岐をして、オフの場合は「この商品は在庫切れです」のような表示をすればよいだけのように思いますが、違いますか?
404.php を使う方法でも悪くはないと思いますが、title タグの内容や OGP の内容が、通常のページとは異なる場合が多いので、あまりおすすめはしません。ECサイトであれば、WooCommerce や Welcart を使えば、「在庫数」「在庫ステータス」の管理はしやすいです。
manbo様
ご連絡ありがとうございます。
非公開にした記事はサイト内検索や新着一覧から除外したいので、
wordpress標準機能の記事ステータス切り替えで行うとそれは出来るのですが、
記事URLへ直リンクすると404になってしまいます。直リンクへアクセスすると記事は表示され、
且つサイト内検索で非表示にしたかったので、
カスタム投稿のみステータス非公開時に404を選択しない方法を模索していたのです。ステータス非公開じゃなくてもサイト内検索や新着一覧から除外できればいいのですが、
当方、都度その辺りのプログラミングが出来ないものですから。
タクソノミーを持たせてアーカイブ用のテンプレートからは分岐することは出来るのですが、
新着、カテゴリ内公開記事数、同じ属性の記事表示、などのループ表示から除外出来ないもので、
ステータス非表示切り替えを使えないかと考えた次第です。説明不足で申し訳ございません。
Rocket Martue様
ご回答ありがとうございます。
————–
single-hoge.php で、オン・オフの条件分岐をして、オフの場合は「この商品は在庫切れです」のような表示をすればよいだけのように思いますが、違いますか?
————–確かにおっしゃる通りですし、上記施策は記事にタクソノミーorフィールドを持たせて、
チェックオン時に分岐表示させることは出来るのですが、
新着一覧表示、カテゴリ内記事数表示、記事と同属性のおすすめ記事表示、
などのループから場外するプログラミング知識が無いので、
安易にステータス切り替えの「非表示」を使おうと考えた次第です。どうぞよろしくお願い申し上げます。
トピック「非公開記事にし、サイト内からは非公開でも記事URLアクセスで閲覧できるように」には新たに返信することはできません。