ホームページ CMS チュートリアル DEDECMS dede5.7のフリーリストで複数のキーワードを取得できない場合はどうすればよいですか?

dede5.7のフリーリストで複数のキーワードを取得できない場合はどうすればよいですか?

Dec 16, 2019 am 10:23 AM
dede

dede5.7のフリーリストで複数のキーワードを取得できない場合はどうすればよいですか?

dede5.7 フリーリストでは複数のキーワードを取得できませんか?

この記事は、dede5.7 のフリーリストで複数のキーワードを取得できない問題の完全な解決策と、代替の使用テクニックをまとめたものです。

推奨学習: 梦Weavercms

まず、DEDE5.7 でフリー リストを追加するためのインターフェイスを見てみましょう。

dede5.7のフリーリストで複数のキーワードを取得できない場合はどうすればよいですか?

この図から、通常の状況では、DEDE は複数のキーワードを使用できると公式に書いていることがわかります: キーワード 1、キーワード 2、キーワード 3... ですが、私は公式の間違いなのか他の理由なのかはわかりません。複数のキーワードを追加しても効果はありません。その代わり、コンテンツが取得できません。皆さんから報告された問題に基づいて、この問題に対する完全な解決策をまとめました。 。 方法。

関与するファイル: include\arc.freelist.class.phpを置き換えます

dede5.7のフリーリストで複数のキーワードを取得できない場合はどうすればよいですか?

関与するコードは上の図に示すとおりであることがわかります。

まず 2 つのコードを非表示にしましょう。

関連するステートメントを自分で作成します:

$orwhere .=  "AND (".$this->GetKeywordSql($keyword)." )";
ログイン後にコピー

最後に、以下の場所を見つけて、作成した関連する検索条件とルールを追加します

function GetKeywordSql($keyword)
    {
        $ks = explode(',',$keyword);
        $kwsql = '';
        $kwsqls = array();
        foreach($ks as $k)
        {
            $k = trim($k);
            if(strlen($k)<1)
            {
                continue;
            }
            if(ord($k[0])>0x80 && strlen($k)<2)
            {
                continue;
            }
            $k = addslashes($k);
            $kwsqls[] = " arc.title LIKE &#39;%$k%&#39; ";
        }
        if(!isset($kwsqls[0]))
        {
            return &#39;&#39;;
        }
        else
        {
            $kwsql = join(&#39; OR &#39;,$kwsqls);
            return $kwsql;
        }
    }
    /**
     *  获得关键字SQL,统计记录使用
     *
     * @access    private
     * @return    string
     */
    function GetRowSql($keyword)
    {
        $ks = explode(&#39;,&#39;,$keyword);
        $kwsql = &#39;&#39;;
        $kwsqls = array();
        foreach($ks as $k)
        {
            $k = trim($k);
            if(strlen($k)<1)
            {
                continue;
            }
            if(ord($k[0])>0x80 && strlen($k)<2)
            {
                continue;
            }
            $k = addslashes($k);
            $kwsqls[] = " title LIKE &#39;%$k%&#39; ";
        }
        if(!isset($kwsqls[0]))
        {
            return &#39;&#39;;
        }
        else
        {
            $kwsql = join(&#39; OR &#39;,$kwsqls);
            return $kwsql;
        }
ログイン後にコピー

上記のコードをページ下部に追加すると、DEDEのフリーリストの複数キーワード機能が使えるようになります。

まだ終わっていません!実際のテスト プロセス中にエディターで問題が発生しました。キーワードを 2 つ追加しました。これは、さらにフィルタリングできるようにするためですか、それともより広範なキーワードを追加するためですか?この問題は長い間私を悩ませてきました。上記のコードを通じて、関連する解決策をテストしました:

dede5.7のフリーリストで複数のキーワードを取得できない場合はどうすればよいですか?

「OR」を使用すると、この場所でそれがわかります。 「AND」にすると検索範囲が狭くなり、既にキーが存在することを意味します。記事内の単語。単語 1 にはキーワード 2 も必要です。

以上がdede5.7のフリーリストで複数のキーワードを取得できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)