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

  • 解決済 jiluro

    (@jiluro)


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

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

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

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

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

8件の返信を表示中 - 16 - 23件目 (全23件中)
  • モデレーター jim912

    (@jim912)

    jiluroさん、こんにちは。

    下記でいかがでしょうか。
    1.社内からの接続が固定IPならば、DBへのクエリーのpost_statusを公開だけでなく、予約投稿、下書き、非公開も許可されるようフィルタリング

    下記を、テーマのfunctions.phpに追記。(***.***.***.***の部分は社内の接続IP、複数ある場合はカンマ区切りで複数指定)

    function allow_display_my_ip( $query ) {
    	$my_ips = array( '***.***.***.***' );
    	if ( in_array( $_SERVER['REMOTE_ADDR'], $my_ips ) ) {
    		$query->query_vars['post_status'] = 'publish,future,draft,pending,private';
    	}
    }
    add_action( 'parse_query', 'allow_display_my_ip' );

    ただし、これだけだとsingleやpageの場合に404になってしまいます。原因は、wp-includes/query.phpの2279行目からの分岐で、singleやpageの場合、post_statusがpublishでないと、結果を空にしてしまうのです。

    2.wp-includes/query.phpの2449行目(ver3.0の場合)をコメントアウト

    //				$this->posts = array();

    こうすれば、社内からのアクセスのみ、非公開投稿、ページなどもログインなしに表示できるようになります。
    ※ ログインしていると逆に編集権限のチェックがあるので、ややこしくなります。

    もう少し固い実装にするのであれば、2の処理部分にもipでの分岐処理を加えてあげると良いです。

    トピック投稿者 jiluro

    (@jiluro)

    jim912さま、わざわざプログラミングしていただいたのですか・・・。
    ホントに有難いです。

    > ※ ログインしていると逆に編集権限のチェックがあるので、ややこしくなります。

    とんでもございません、これは全然ガマンできます。別のブラウザでログインしていない状態で自分は閲覧チェックすれば良いのでモンダイないです。有難うございます。

    それで、早速やりました!
    ・・・が、フェイタルエラーの画面が出てしまいました。

    手順としては、先ほどのプラグインを切った上で、wp-includes/functions.phpの一番最後の「?>」の前に書いていただいたソースを貼り付け、IP欄にIPを正確に記載後、再度アップロード。

    そして、wp-include/query.phpの2449行目にあった記述を以下に変更後アップロード。

    // $this->posts = array();

    エラーメッセは以下です。

    Fatal error: Call to undefined function add_action() in /myserver/www/myacount/mysite.co.jp/wp-includes/functions.php on line 4309

    add_actionsがおかしい的な意味?? ちゃんとWordPress 3.0でやってるんですが・・・
    4309行目には
    add_action( ‘parse_query’, ‘allow_display_my_ip’ );
    があります。
    そもそもいただいたソースの貼り付け場所が間違いとかでしょうか。

    モデレーター jim912

    (@jim912)

    jiluroさん

    wp-includesのfunctions.phpではなく、テーマのfunctions.phpに記述してください。

    トピック投稿者 jiluro

    (@jiluro)

    テーマの方でしたか、失礼いたしました!
    そして・・・・・

    できました~~~~~!!!

    バッチリです!!!
    ヤッタ~~~~~!!!!!

    > ※ ログインしていると逆に編集権限のチェックがあるので、ややこしくなります。
    >
    > もう少し固い実装にするのであれば、2の処理部分にもipでの分岐処理を加えてあげると良いです。

    「もう少し固い実装」をしないとまずいんでしょうね。
    コメントアウトした後にでもソースを貼り付けてやってみます!

    取り急ぎとにかく早く御礼をお伝えしたく!

    トピック投稿者 jiluro

    (@jiluro)

    jim912さま、ログイン状態でも閲覧できないことはなかったです。
    ログイン状態でもログアウト状態でもOKでした!
    私が追加でいじることは何もしていませんのでなんでなのかよくわかりませんが、
    とにかくできたようです。
    どうも有難うございました!
    他の方もご親身にしていただき誠に有難うございました。

    モデレーター jim912

    (@jim912)

    jiluroさん、こんにちは。

    ログイン状態だと、作成者など権限の低いユーザーで見られなくなるはずです。管理者、編集者のみの利用であれば問題はありません。

    トピック投稿者 jiluro

    (@jiluro)

    > ログイン状態だと、作成者など権限の低いユーザーで見られなくなるはずです。管理者、編集者のみの利用であれば問題はありません。

    なるほど、そういうことでしたか! それなら何ら問題ないです! 管理者の当方自身さえログイン状態で見れれば楽なので。
    素晴らしいです、ホントに。このような用途は必ず必要になってくる大変貴重なものだと思っています。

    これより複数の運営サイトについてWordPressのバージョンアップをしない状態で試してみようと思っております。バージョンアップは優先作業が落ち着いてから後日やるつもりです。
    もちろん教えていただいたやり方・ソースではバージョン3でないとダメなのであればこのタイミングでバージョンアップやりますし。自分で試してみます。

    jim912さま、大変感謝申し上げます!
    今後ともどうぞ宜しくお願い致します。

    WordPressのブログが他の人からはテキストしか見れないです><

    iPhoneアプリ開発熟達テクニッックの本のP262を読みながら
    mysql Ver 14.14 Distrib 5.1.58
    をインストール、
    sudo cp /usr/local/mysql/support-files/my-small.cnf /etc/my.cnf
    my.cnfを編集し
    [mysqld]
    default-character-set=utf8
    character_set_serve=utf8
    [mysql]
    default-character-set=utf8
    mysqlを再起動
    /usr/local/mysql/bin/mysql -u root -p
    SHOW VARIABLES LIKE ‘character\_set\_%’;で
    latinからutf8にテキストエンコーディングしているのを確認
    sudo cp /etc/php.ini.default /etc/php.ini
    php.iniを編集し
    /var/mysql/mysql.sockを/tmp/mysql.sockに置き換える
    display_errors = Onに変更する
    Web共有からapacheを再起動
    PHPからMySQLを呼び出せるように設定しました。
    phpMyAdmin 3.3.10をダウンロード
    /Library/WebServer/Documents/phpMyAdmin
    にコピーして
    config.sample.inc.phpをコピーして
    config.inc.phpに変更して、
    $cfg[‘blowfish_secret’]=’ランダムな文字列’;
    と編集
    http://localhost/phpMyAdmin/
    にアクセスしてログインできることを確認
    新規データベース wp
    照合順序 utf8_unicode_ci で作成
    wp-config-sample.phpをコピーし、
    wp-config.phpに名前を変更
    wp-config.phpで
    Wordpressのためのデータベース名と
    MySQLのデータベースのユーザー名と
    MySQLのパスワードを入力
    https://api.wordpress.org/secret-key/1.1/salt/
    から認証用ユニークキーを取得し、
    wp-config.phpを編集しました。
    http://localhost/wordpress/wp-admin/install.php
    でサイトのタイトル、ユーザー名、パスワードを入力し、
    Wordpressをインストールして、成功しました!を確認
    http://localhost/wordpress/wp-login.php
    で投稿、新規追加で
    Wordpressのブログを作成したのですが、
    http://122x210x182x153.ap122.ftth.ucom.ne.jp/wordpress/
    は自分のパソコンからでは
    普通に画像やCSSが有効になっていて、コメントとかもできるのに
    他のパソコンからこのリンクにアクセスすると
    ブログのテキストは表示されるのですが、
    画像も、CSSも有効にならず
    コメントもリンクも使えません。
    どうしてでしょうか?
    ちなみに
    http://122x210x182x153.ap122.ftth.ucom.ne.jp/info.php
    http://122x210x182x153.ap122.ftth.ucom.ne.jp/cgi-bin/hello.pl
    http://122x210x182x153.ap122.ftth.ucom.ne.jp/cgi-bin/hello.cgi
    のリンクは見れるのでPHP,Perl,CGIはつかえます。
    http://ja.forums.wordpress.org/topic/4608?replies=23
    のフォーラムの質問を見ても
    10日で覚えるWordpress入門講義を読んでも
    まだ自己解決できないのでおしえてください><
    Apache/2.2.17 (Unix) mod_ssl/2.2.17
    OpenSSL/0.9.8r DAV/2
    PHP/5.3.4
    mysql Ver 14.14 Distrib 5.1.58
    phpMyAdmin 3.3.10
    Safari 5.1
    Wordpress 3.2.1

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