サポート » 使い方全般 » 「このページをプレビュー」のページが他者には見れない

  • 解決済 jiluro

    (@jiluro)


    昨日自己解決したと思っていましたが勘違いでして再度投稿させていただきます。
    「このページをプレビュー」のページを他者にも見せるにはどうすれば良いでしょうか?

    例えば「ページ」を作成するとしまして、それを公開する前に、社内の然るべきメンバにチェックしてもらおうと思うのですが、「ページ」を作成したのちに「公開」でなく「保存」を押さないといけないと思います。
    でないと公開されてしまうのでチェック前の公開になってしまうからです。

    なので、「保存」を押して、「このページをプレビュー」を別タブなどで開くわけですが、自分では閲覧できるのですが、他者では閲覧できませんでした。「ページがありません」の404が開いてしまいます。
    プレビュー用の?付きの特殊なURLになっています。

    公開後のURLはわかっていますから、ためしにそれで開くとそれでも開きました。これで他者に見てもらったのですが、これでも404でした。今のままですとwp-login.phpにログインしないと見れないようです。

    これでは社内メンバ達へのチェックができず、これでは使えないぞとほうぼうから声が上がって困っております。会社サイトができあがったので、このような局面は今後しょっちゅう出てきます。
    わざわざメンバの登録をしてログインしてもらって閲覧してもらうなどという面倒なことも当然できませんし、ログインしないで見せる方法はどういった方法でしょうか?

15件の返信を表示中 - 1 - 15件目 (全23件中)
  • 条件にもよると思います。

    ・サーバーは社内に存在しており、外部とのアクセス経路が違う場合
    この場合はローカルとグローバルで分け、例えばパスワード付きで保存するとか、カスタムフィールドに「非公開」などの文字やコードを入れておいて、該当の文字やパスワードが設定されている物はグローバルからアクセスしても表示をしないようにする方法などが考えられます。パスワードを利用する場合はテーマに少々工夫がいりますけど。

    ・サーバーは社外(ホスティングなど)にあり、社外アクセスと社内アクセスが区別できない場合
    これは理屈から言って、不可能です。考えてもみてください、ログインしないで非公開記事が読めるとしたら完全に不具合ですよね(汗)

    これでは社内メンバ達へのチェックができず、これでは使えないぞとほうぼうから声が上がって困っております。

    インターネット上にサーバーが存在していて、ログインもしないでURLに直接アクセスできる穴だらけのシステムでもいいですか?と小一時間問いただしてください。使えないのはおまえらだ~と;)

    正直、ないわけではないと思いますよ。時限式のURLを生成して、1時間以内ならアクセス可能であるとかね。ただしそのシステムを作れればですが・・・

    トピック投稿者 jiluro

    (@jiluro)

    早々に有難うございます!
    うぅ~む・・・そうですか無理ですか・・・。
    サーバは社外です。

    > ログインしないで非公開記事が読めるとしたら完全に不具合ですよね(汗)

    おっしゃることはその通りでもっともなことですね~。ワタシも合わせてもらえるなら楽ですホントにぃ(苦笑。
    がしかし、メンバは主業務が文字通り主であり、とにかくみな忙しい!
    なのでこのようなチェックはとにかく簡便にささっと済ませたいのです。偉い方も多く、実際の現実としては非常に合わせてもらいにくいものです。実際の現実とはかようなことが多く。。。

    また、ログインして本件が閲覧できるのは、なんと「管理者」か「編集者」の権限が無いとダメでした。。。その他の「作成者」などの権限では閲覧できなかったです。。。
    編集ができる権限で入られるのはこれはこれでモンダイです。管理担当のワタシだけがいじれないといけないようになっていますから。。
    なので、せめて単なる閲覧権限でログインしても非公開ページが閲覧できるならまだ言えるのですが・・・。

    まだ公開していない状態でサイドバー等にリンクも出ず、URLは希望するURLでとりあえず表示されると非常に良いのですが・・・。表示されてもどこからもリンクが貼られていないワケですから、一般にはこの非公開ページのURLはどこからも辿れませんし。
    チェック済むまでの短期間ですしまずもってこのURLが外にわかることはないですから。

    公開してしまい、htaccess等でアクセス制限かける手もありますが、サイドバーにリンクが出現しますからダメですし・・・ウ~ンコマッタ。。。

    その他の「作成者」などの権限では閲覧できなかったです

    これはプラグインで権限を作れますよ;)

    当方、自作で承認プラグインを運用していますが、管理者(admin)は当然私の部署、作成者は権限を作成してプラグインやテーマなどはいじれないように、そして、承認権限者はプレビューしかできません(笑)
    しかも、その承認権限者でプレビューしている時だけ承認ボタンがでてきてぽちっとしてもらっています。

    Role Manager 有名なプラグインですので、お試しあれ。

    モデレーター jim912

    (@jim912)

    jiluroさん、こんにちは。

    社内からの接続が固定IPならば、DBへのクエリーのpost_statusをpublishではなく、anyとなるようにフィルタリングしてあげれば、ログインしていなくても非公開や下書きなどの投稿・ページも表示が可能になります。

    トピック投稿者 jiluro

    (@jiluro)

    jim912さま、有難うございます!

    固定IPです。
    ネット検索やらWordPressCodeXやらで調べまくりましたが、おっしゃられているのは以下のページのことでございましょうや?

    http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/wp_publish_post

    これによりますと、「wp-includes/post.php」にあるように書かれてあったので開いてみて、
    1496行目に、

    「$wpdb->update( $wpdb->posts, array( ‘post_status’ => ‘publish’ ), array( ‘ID’ => $post_id ) );」

    という記述がありました。
    ここのpublishをanyへ変える?ということでしょうか?
    書き換えてアップしてWPが動かなくなって、元に戻しても動かないまま、なんてことになったら困るので躊躇しております。
    また、それ以前に何のことか意味がわからない知識レベルなのでさっぱり合っているような気がしないですが・・・
    全く違うことをおっしゃっているのであればお恥ずかしい・・・

    トピック投稿者 jiluro

    (@jiluro)

    追記です。

    被害がとっても少ないサイトで試しました!
    しかし、同じく404になってしまいました。。。
    やっぱり全然違うことしてるのでしょうか?

    もしかして、wp-login.phpを開いたときにhtaccessによるアクセス制限をかけてますが、それが原因かと思って、htaccessのID・パスをログインして、しかしWPにはログインしない状態で再度表示してみたのですが、それでも404でした。

    また、post.phpの上記のソースの下にもpublishの記述があったところがあったので、そこもanyにしてみました。以下です。

    $wpdb->update( $wpdb->posts, array( ‘post_status’ => ‘any’ ), array( ‘ID’ => $post_id ) );

    $old_status = $post->post_status;
    $post->post_status = ‘any’;
    wp_transition_post_status(‘any’, $old_status, $post);

    これでも404のままでした。

    このプラグインで応用できそうですが、どうでしょう。
    http://wordpress.org/extend/plugins/public-post-preview/

    トピック投稿者 jiluro

    (@jiluro)

    takuyaさま、ご提案有難うございます!

    なんか、まさしくズバリのプラグインのようですね!ということで早速試しまくりました!

    最新版のver1.3のフォルダごと、指定通り「plugin」フォルダに入れて管理画面でプラグインをオンしました。どこかに「public post preview」の文字が出て編集が必要か?と思いましたが、どこにも出ないので、プラグインをONするだけで稼動し出すものと思い、表示テストしましたが変わらず404。
    WPのバージョンが2.7以上になっていたので古いバージョンでも試しました。1.2と1.1で。
    しかし古いバージョンでも404で変わらずでした。。。
    プラグインファイルであるphpファイルをなんかいじる必要があるようですかね。
    うう~む・・・どうしよう。。。
    引き続き何やかんややっていきます!

    教えていただいて有難うございました!感謝します!

    何が404になるのか肝心なところが分からないのですが、プラグインページにはこう書いてあります。投稿ボックスの下に専用プレビューリンクが表示されるらしいです。

    Usage

    1.By default all posts in draft or pending review status will have public preview links that can be found diretly below the edit post box.

    2.To disable public post preview for a specific post uncheck the public preview post box and save the post.

    public Post Preview wordPress3.0で動作確認しました。

    ログアウト後 プリビューにアクセスすることができました。

    投稿のエディタの下に Public Post Preview という項目と リンクが表示されました

    表示されないようであれば、表示オプションタブのチェックを確認してみてはどうでしょうか

    プラグインファイルであるphpファイルをなんかいじる必要があるようですかね。

    何もしなくていいみたいでした

    http://example.com/wp/?p=999&preview=true&preview_id=999&public=1&nonce=2110d0f01b
    みたいにアクセスするようです

    トピック投稿者 jiluro

    (@jiluro)

    再度有難うございます!

    404とはですね、Not Found、つまりページが見つからないとき等に表示されるウェブページなんです。
    冒頭に書いておりますように、管理者等でログインしない人がプレビュー画面をブラウザで開いてもプレビュー画面は見れず、404が開くということなんです。
    ログインさせずとも、こちらで指定したURLに関係者がアクセスしていただくだけでプレビューページが見れるようにしたい、ということなんです。

    ところでテスト領域を設けてからWPを最新にして本プラグインをテストしてみました。
    が、「Upload/Insert」画面直下にはCustom Fieldsが表示されていて、その下にも出現しないんです。。。
    本プラグインも完全にONしているので反映されてるはずなんですが・・・
    Versionが2.9までしか対応していないのか、もしくはパーミッションか?というところで仕事が差し込み止まりました汗;

    引き続き明日にでもやっていきまする。。。

    トピック投稿者 jiluro

    (@jiluro)

    投稿したらnobitaさまからのウレシい投稿が追加されてるのを発見!有難うございます!

    そうですか! ver3.0でできましたか!
    しかもphpファイルをいじることなくできたと!わざわざ調査いただいて助かりますm(_ _)m

    > 表示されないようであれば、表示オプションタブのチェックを確認してみてはどうでしょうか

    表示オプションタブというのがわからず探し中です。ver3.0にしたらレイアウトも大幅変更だし、しかも日本語じゃなくて英語表記になっちゃってなおさら見つけにくいのか、まだわかりません。プラグインを有効にする話じゃないと思うので他にどこかあるのだと理解中です!
    またご報告いたします!

    トピック投稿者 jiluro

    (@jiluro)

    WP3.0を日本語化できました!
    で、表示オプションわかりました。が、英語の時に調べた箇所でして、ここに本件のプラグインらしき項目は出現していませんでした。
    引き続き探します!!

    トピック投稿者 jiluro

    (@jiluro)

    「ページ」を作成したものに対してのプレビューをログインしない関係者に閲覧してもらいたかったのですが、このプラグイン、なぜか「ページ」の作成では出ないと結論づけました。
    というのも、「ページ」では作成できない代わりに、「投稿」で作成したページについては「Public Post Preview」の項目が出現し、使えることがわかったからです。
    どうやらこのプラグインは「ページ」では使えないものらしいです。。。
    しかし、現状では「ページ」で使いたいのではありますが、「投稿」で使う際には使用できますから未来において使うときには役に立ちます!
    takuyaさま、nobitaさまのご協力に感謝しております

    さて、プログラミングは全く無知ですが、いじってみました。
    このプラグインのPHPファイルである

    「public-post-preview.php」

    をいじることで「ページ」作成にも使えるようになるのであればと思いまして(ダサッ)。
    「投稿」を示す文字列名がどうやら
    ●post
    ●Post
    ●POST
    で書かれてあるので、これを全て
    ●page
    ●Page
    ●PAGE
    に置換して、

    「public-page-preview.php」

    として試してみました(恥;

    すると、「ページ」作成画面に「Public Page Preview」の項目が出てきました!(驚)

    しかし、リンクを開いてみると、

    「You do not have permission to publicly preview this post.」

    と出て表示してくれませんでした(大笑

    このパブリックプレビュー用のURLを見て気づいたのですが、
    投稿のパーマリンクは、
    「http://www.mysite.jp/?p=5」
    というように「?p=数字」
    となっていますが、ページのパーマリンクは
    「?page_id=数字」
    になっていました。
    なので、PHPファイルの中で、
    「array(‘p’ => $this->id,」
    とあったところを、
    「array(‘page_id’ => $this->id,」
    にしてみました。
    すると、ログイン状態では開いてくれました。しかし、ログアウト状態では404になってしまいます。
    ウ~ン・・・なんかもうひといきのような気がするんですがワカラン。。。

    やっぱ、そんなカンタンな加工でできるワケないか(恥

    トピック投稿者 jiluro

    (@jiluro)

    さらに、

    ‘p’

    のところを

    ‘page_id’

    にもしたのですがダメです。どうしてもログアウト状態では404になっちゃいます・・・。
    苦労して折角2.65から3.0にしたというのにウ~ン・・・

    あと、たまたま見つけたのですが、作者さんが今はできんが未来につくると書いているような。。。
    でも、投稿はずいぶん前のような・・・

    http://wordpress.org/support/topic/310502?replies=4

    なんとか頑張ろう・・・

15件の返信を表示中 - 1 - 15件目 (全23件中)
  • トピック「「このページをプレビュー」のページが他者には見れない」には新たに返信することはできません。