メインコンテンツへ移動

キタジマ タカシ

フォーラムへの返信

15件の投稿を表示中 - 1,501 - 1,515件目 (全7,481件中)
  • 投稿者
    投稿
  • アバター画像キタジマ タカシ
    参加者
    2587

    Snow Monkey v19 でレイアウト周りに大きな変更があったのでその影響かもしれません(v18 以下からのアップデートでしょうか?)。

    なにもカスタマイズしていなければ、基本的には問題が起きてもそのページの編集画面を開けば自動で修正されますが(再保存は必要)、カスタマイズが影響している場合は何らかの修正が必要になる可能性があります。どのようなカスタマイズをしているかで対処内容が変わってくると思うので、じっさいの画面かスクショを見ない詳しくはわからないと思います…。

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2587

    わーすみません! 忘れていました(*_*)
    ちょっとやってみます。

    1
    Who liked:
    アバター画像キタジマ タカシ
    参加者
    2587

    下記、「news」というカスタム投稿タイプの場合の例です。My Snow Monkey プラグインか子テーマの functions.php にコードを追加してみてください。

    // カスタム投稿タイプ用のウィジェットエリアを登録
    add_action(
    	'widgets_init',
    	function() {
    		register_sidebar(
    			array(
    				'id'            => 'my-news-sidebar',
    				'name'          => 'ニュース用',
    				'before_widget' => '<div id="%1$s" class="c-widget %2$s">',
    				'after_widget'  => '</div>',
    				'before_title'  => '<h2 class="c-widget__title">',
    				'after_title'   => '</h2>',
    			)
    		);
    	}
    );
    
    add_action(
    	'wp_body_open',
    	function() {
    		// 「カスタム投稿タイプ詳細かつカスタム投稿アーカイブページではないとき」は何もしない
    		if ( ! is_singular( 'news' ) && ! is_post_type_archive( 'news' ) ) {
    			return;
    		}
    
    		// サイドバーからデフォルトのウィジェットエリアを外す
    		remove_action( 'snow_monkey_sidebar', 'snow_monkey_sidebar_add_sidebar_widget_area', 20 );
    
    		// カスタム投稿タイプ用のウィジェットエリアをサイドバーに追加
    		add_action(
    			'snow_monkey_sidebar',
    			function() {
    				?>
    <div class="l-sidebar-widget-area"
    	data-is-slim-widget-area="true"
    	data-is-content-widget-area="false"
    	>
    	<?php dynamic_sidebar( 'my-news-sidebar' ); ?>
    </div>
    				<?php
    			}
    		);
    	}
    );
    1
    Who liked:
    アバター画像キタジマ タカシ
    参加者
    2587

    コード書いてみます!

    1
    Who liked:
    アバター画像キタジマ タカシ
    参加者
    2587

    Blocks v19.1.0 でパディングの設定機能を追加しました!

    1
    Who liked:
    アバター画像キタジマ タカシ
    参加者
    2587

    Blocks v19.1.0 で修正しました!

    1
    Who liked:
    アバター画像キタジマ タカシ
    参加者
    2587

    夜中にすみません!!ただいま v6.0.3 としてリリースしました!

    1
    Who liked:
    アバター画像キタジマ タカシ
    参加者
    2587

    お手間おかけして申し訳ないです…。さらに変えてみました!

    protected function _get_current_url() {
    	$site_url      = site_url(); // WordPress Core URL.
    	$home_url      = home_url(); // Home page URL.
    	$own_directory = untrailingslashit( str_replace( $home_url, '', $site_url ) );
    
    	preg_match( '|https?://[^/]+?(/.+?)$|', $home_url, $match );
    	$sub_directory = $match ? $match[1] : '';
    
    	$path = filter_input( INPUT_SERVER, 'REQUEST_URI' );
    	$path = preg_replace( '|^' . $sub_directory . $own_directory . '|', '', $path );
    	$path = remove_query_arg( 'login_error_codes', $path );
    	$path = remove_query_arg( 'register_error_codes', $path );
    
    	return home_url( $path );
    }
    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2587

    うがーまじですか…。

    CASE-B 専用ディレクトリ→そのまま表示
    専用ディレクトリ : https://example.com/wp
    トップページ URL : https://example.com/wp

    ■CASE-Bのみ不具合あり
    ・ログインフォーム:ログインはできているが、https://example.com/wp/wp/と、専用ディレクトリの部分がもう一度付与されるURLにリダイレクトされるため、404になる。
    ・登録フォーム:登録はできているが、https://example.com/wp/wp/?checkemail=registeredと、上記同様に付与されたURLにリダイレクトされるため、404になってしまう。

    ですよね?

    一応今僕は、WordPress は https://inc2734.xxx.xxx/snow-monkey/ に設置、トップページの URL も https://inc2734.xxx.xxx/snow-monkey/ という状態のサイトに適当な投稿をつくり、そこにログインフォームを設置してログイン情報を送信したところ、正しくログインできました。

    ダッシュボード → 設定 → 一般設定の「WordPress アドレス (URL)」「サイトアドレス (URL)」はどちらも同じでしょうか? また、それら URL 末尾のスラッシュはありなしどちらでしょうか?

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2587

    bar| となっているからではないですかね? bar だと思います。

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2587

    サブディレクトリの対応、snow-monkey-member-post/App/Shortcode/LoginForm.phpmember-post/App/Shortcode/RegisterForm.php の中にある

    protected function _get_current_url() {
    	...
    }

    protected function _get_current_url() {
    	$site_url      = site_url(); // WordPress Core URL.
    	$home_url      = home_url(); // Home page URL.
    	$own_directory = untrailingslashit( str_replace( $home_url, '', $site_url ) );
    
    	$path = filter_input( INPUT_SERVER, 'REQUEST_URI' );
    	$path = preg_replace( '|^' . $own_directory . '|ms', '', $path );
    	$path = remove_query_arg( 'login_error_codes', $path );
    	$path = remove_query_arg( 'register_error_codes', $path );
    	return home_url( $path );
    }

    に書き換えてみるとどうでしょうか!?

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2587

    もし、XO Securityを使用せず、さきほど示した独自の方法の場合だと(コア側の変更は別として)、「変更があった場合の正しい動作不安」もなく使い続けられる可能性が高まる、ということでしょうか。

    あるいは、XO Securityの設定値を読み込み、URL書き換えの処理を行う方法が現時点では最適解、といった背景があってのことでしょうか。

    うーんそうですね、人によって考えは違うかもしれませんが、「XO Securityの設定値を読み込み、URL書き換えの処理を行う方法」は(XO Security のアップデートで互換性が崩れることがある可能性を除けば)利用者側は難しいことを特に考えなくて良いというのがメリットです。

    独自の方法だと好きに書き換えができるわけですが、XO Security や Login rebuilder が同じような条件下でのみ書き換えを許可していることを考えると、なんでもかんでもフックで書き換えるのが良くない、という可能性もあるのかなと(ちょっとこの辺は僕は詳しくないです)。もし本当にそうだったとしたら、フックでかきかえるのはあまり良くない方法なのかもしれません。

    今↓のように

    site_url( 'wp-login.php', 'login_post' ) と URL を書いているところを、

    $action = site_url( 'wp-login.php', 'login_post' );
    if ( class_exists( '\XO Security' ) ) {
      // XO Security で URL 書き換え設定が有効化されている場合は $action を書き換え
      $action = str_replace( ... );
    }
    ?>
    <form action="<?php echo esc_url( $action ); ?>" ...>

    のようにすれば、フックで書き換えているわけではないので、影響が及ぶ範囲を Member Post のフォームだけに限定でき、大問題には発展しないのかなという感じです。

    1
    Who liked:
    アバター画像キタジマ タカシ
    参加者
    2587

    書き換え側で対処してもらわないと完全な対応は難しいので、とりあえず XO Security が有効化されている場合は Member Post 側で XO Security の設定値を読み込み、フォームのログイン URL を書き換えるようにします(XO Security の変更を追っているわけではないので、XO Security 側で変更があった場合は正しく動作しなくなる可能性はあります)。

    サブディレクトリの対応についてはもうしばしお待ちを…。

    0
    Who liked: No user
    アバター画像キタジマ タカシ
    参加者
    2587

    すみません、ちょっと無理そうな気がしてきました…。コードを追っていくと下記の部分があるのですが、

    	/**
    	 * Get the login URL.
    	 *
    	 * @param string $url       URL.
    	 * @param string $loginfile Login filename.
    	 */
    	private function get_login_url( $url, $loginfile ) {
    		if ( is_user_logged_in() ) {
    			return str_replace( 'wp-login.php', $loginfile, $url );
    		}
    
    		if ( empty( $_SERVER['REQUEST_URI'] ) ) {
    			return $url;
    		}
    
    		if ( false !== strpos( $_SERVER['REQUEST_URI'], $loginfile ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput
    			$url = str_replace( 'wp-login.php', $loginfile, $url );

    既にログイン済みの場合か、変更後のログインページを開いているときにログイン URL の書き換えがおこなわれるようです。つまり、ログイン済みか今からログインしようとログイン画面を開いているときのみ書き換えが行われるということで、Member Post のフォームは非ログイン時しか表示されないので書き換えがおこなわれないということになります…。なぜこの条件指定になっているのかがよくわからなかったのですが、何か理由があるのかもしれませんね…。

    1
    Who liked:
    アバター画像キタジマ タカシ
    参加者
    2587

    コードありがとうございます! XO Security のものとほぼ同じ実装のようでした。

    ちょっと試してみたいたのですが、どうも WordPress コアのログイン・ログアウトブロックの場合でも送信先の URL が wp-login.php のままになってしまうようでした。

    なのでこのログイン URL を変更するコード自体に何らかの問題があるのでは?という気がしました。Member Post のほうを、このコードに合わせる形で何らかの変更を入れることができないか、もう少し調査してみます。

    1
    Who liked:
15件の投稿を表示中 - 1,501 - 1,515件目 (全7,481件中)

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。