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

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

    【お使いの 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
    キタジマ タカシ
    キーマスター
    286

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

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

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

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

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

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

    0
    #32119
    M T
    閲覧者
    5

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

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

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

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

    0
    #32268
    キタジマ タカシ
    キーマスター
    286

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

    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
    閲覧者
    5

    ありがとうございます。

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

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

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

    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
    キタジマ タカシ
    キーマスター
    286

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

    <?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' );
    }
    0
    #32739
    M T
    閲覧者
    5

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

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