search.phpの記載について(別のテンプレートに返す場合)

1
いいねをした人:
  • このトピックには6件の返信、2人の参加者があり、最後にM Tにより5年前に更新されました。
7件の投稿を表示中 - 1 - 7件目 (全7件中)
  • 投稿者
    投稿
  • #32082
    M T
    閲覧者
    9

    【お使いの Snow Monkey のバージョン】v7.13.2
    いつもお世話になっております。
    たびたびの質問で恐縮です。
    (※コードを貼って送信するとどうしてもエラーになるのでcodepadで貼りました)
    絞り込み検索プラグインを使っ場合に、別のテンプレート(search-form0.php)を返す場合についてです。

    以前、古いバージョンの時にご教示いただき、下記のようなコードをsearch.phpに記載し、子テーマに置いています。
    (search-form0.phpは、マニュアルに従って、my-snowmonkeyプラグインフォルダに置いています。my-snow-monkey/view/templates/view/search-form0.php)

    ▼search.php記載(動作する)

    今のバージョンと記載内容が違っていて、そのまま使うのが気持ち悪いので、下記のように該当部分だけを差し替えましたが、絞り込み検索プラグインが動作しません。
    前半の部分が影響していると思いますが、どこを修正したらよいかご教示いただけませんでしょうか。前述の古いコードでは動作しています。

    ▼search.php記載(現バージョン・動作しない)

    0
    いいねをした人: 居ません
    #32085
    アバター画像キタジマ タカシ
    参加者
    2421

    ▼search.php記載(動作する)

    については <?php ではじまっていますが、

    ▼search.php記載(現バージョン・動作しない)

    のほうは <?php がありません。コピペミスかもしれませんが、その点はどうでしょうか?

    また、「動作しない」とは具体的にどういうことでしょうか?

    個人的には、動作するほうのコードを使って別に大丈夫じゃないかなぁと思います。

    0
    いいねをした人: 居ません
    #32119
    M T
    閲覧者
    9

    すみません、▼search.php記載(現バージョン・動作しない)
    は実際には、先頭に <?php が入っています。

    「動作しない」というのは、絞り込み検索(プラグインによる)を使った際に、カスタム投稿のみが対象なのに、カスタム投稿だけではなく、投稿ページ、固定ページの一覧(全ての記事)が「リッチメディア」形式で表示されます。タイトルはなぜけフロントページです。

    古いコードでも問題なければ、それでいきたいと思いますが、
    use Inc2734\Mimizuku_Core\App\Controller\Controller;などは使われていないようですが大丈夫なのでしょうか。それと、新バージョンの以下の記載はなくてもよいのでしょうか。(なぜかコードを送信するとエラーになります)

    コードの知識がなくて恐縮ですが、よろしくお願いいたします。

    0
    いいねをした人: 居ません
    #32268
    アバター画像キタジマ タカシ
    参加者
    2421

    新バージョンの以下の記載はなくてもよいのでしょうか。

    WordPress デフォルトの検索結果を使う場合は必要なのですが、プラグインを使うことでデフォルトの検索結果が利用されなくなっているのならば不要だと思います。もし入れるとしたらこんな感じでしょうか。

    <?php
    /**
     * @package snow-monkey
     * @author inc2734
     * @license GPL-2.0+
     * @version 5.4.6
     */
    
    use Framework\Controller\Controller;
    
    Controller::layout( get_theme_mod( 'archive-page-layout' ) );
    if ( have_posts() ) {
    	if ( $_GET['fe_form_no'] == '0' ) {
    		//search-form0.php をビューファイルとして読み込み
    		Controller::render( 'search-form0' );
    	} else {
    		global $wp_query;
    
    		$_post_type = filter_input( INPUT_GET, 'post_type' );
    		$_post_type = $_post_type ? $_post_type : 'any';
    
    		query_posts(
    			array_merge(
    				$wp_query--->query,
    				[
    					'post_type' => $_post_type,
    				]
    			)
    		);
    		
    		// デフォルトのビューファイルを読み込み
    		Controller::render( 'archive', 'search' );
    	}
    } else {
    	Controller::render( 'no-match' );
    }

    (なぜかコードを送信するとエラーになります)

    レンタルサーバーのセキュリティの設定で、なんらかの条件のときに弾かれちゃうみたいです…。ぼくも条件はよくわかっていません。

    0
    いいねをした人: 居ません
    #32418
    M T
    閲覧者
    9

    ありがとうございます。

    デフォルトの検索結果が利用されなくなっているのならば不要だと思います。

    すみません、通常の検索も使っています。「絞り込み検索」は特定のカスタム投稿タイプを対象に使っています。

    ご教示いただいたコードを使ってみると、以下のコードが出て、画面が白くなります。

    Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR), expecting ',' or ')' in /home/volunavi/matchingenglish.com/public_html/wp-content/themes/snow-monkey-child-master/search.php on line 24
    サイトに技術的な問題が発生しています。

    どこか修正が必要でしょうか。

    0
    いいねをした人: 居ません
    #32702
    アバター画像キタジマ タカシ
    参加者
    2421

    ありゃすみません、なんか変になってますね。下記でどうでしょう。

    <?php
    /**
     * @package snow-monkey
     * @author inc2734
     * @license GPL-2.0+
     * @version 5.4.6
     */
    
    use Framework\Controller\Controller;
    
    Controller::layout( get_theme_mod( 'archive-page-layout' ) );
    if ( have_posts() ) {
    	if ( isset( $_GET['fe_form_no'] ) && $_GET['fe_form_no'] == '0' ) {
    		//search-form0.php をビューファイルとして読み込み
    		Controller::render( 'search-form0' );
    	} else {
    		global $wp_query;
    
    		$_post_type = filter_input( INPUT_GET, 'post_type' );
    		$_post_type = $_post_type ? $_post_type : 'any';
    
    		query_posts(
    			array_merge(
    				$wp_query->query,
    				[
    					'post_type' => $_post_type,
    				]
    			)
    		);
    
    		// デフォルトのビューファイルを読み込み
    		Controller::render( 'archive', 'search' );
    	}
    } else {
    	Controller::render( 'no-match' );
    }
    1
    いいねをした人:
    #32739
    M T
    閲覧者
    9

    今回のコードで正常に動作しました。
    ご丁寧に教えていただきありがとうございました。

    0
    いいねをした人: 居ません
7件の投稿を表示中 - 1 - 7件目 (全7件中)
  • トピック「search.phpの記載について(別のテンプレートに返す場合)」には新しい返信をつけることはできません。

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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