ホームページ > CMS チュートリアル > DEDECMS > dede:likearticle記事タグとtagタグの関連付けに誤りがある場合の対処方法

dede:likearticle記事タグとtagタグの関連付けに誤りがある場合の対処方法

藏色散人
リリース: 2019-12-27 10:12:16
オリジナル
2169 人が閲覧しました

dede:likearticle記事タグとtagタグの関連付けに誤りがある場合の対処方法

##dede: likearticle 記事タグと tag タグが誤って関連付けられている場合はどうすればよいですか?

Dreamweaver 5.7 には、記事を関連付けるために使用される dede:likearticle タグがありますが、それを使用する過程で、この関連付けは実際には役に立たないことがわかりましたが、作成者は、誰もが Dreamweaver を使用していることに気付きました。 5.7 を検索する場合はまだ許容されますか? 作者は dede の検索機能をこの likearticle に置き換えましたが、かなり改善されているようです。

推奨学習:

Dream Weaver cms

コード紹介

著者は記事をタグに関連付けるためにデフォルトのキーワードを変更し、判決が追加されましたタグに基づいてあいまいクエリを実行した後、クエリ データが空の場合は、この列の下にあるすべての推奨記事を再度直接クエリします。これは、常に戻り値が存在するため、より良い方法です。

著者は、タグのない記事、タグはあっても記事が見つからない記事があると考え、まずタグの有無を判断し、タグがない場合はこのコラムのおすすめ記事を直接問い合わせます。タグがある場合は記事は見つかりませんが、空の記事が見つかった場合は、現在の列の下にあるおすすめの記事も返されます。

likearticle タグとタグ タグを関連付ける解決策/手順

ステップ 1: メモ帳またはいくつかのツールを使用して、ファイル「ルート ディレクトリ\include\taglib\likearticle.lib.php」を開きます。

ステップ 2: 「['キーワード']」を検索し、すべてを ['タグ'] に置き換えて保存します。

Computer Mutual Aid Network 注:

元のコード行 55: $keyword = (!empty($refObj->Fields['keywords']) ? $refObj->Fields[ 'keywords'] : '' );

元のコード行 75: if(!empty($refObj->Fields['keywords']))

元のコード行 77:$キーワード =explode(',' , trim($refObj->Fields['keywords']));

ステップ 3: 87 行目の下に「$keyword .= $keyword==」を追加します ? " CONCAT(arc.title,arc.keywords,arc.shorttitle) REGEXP '($k)'": " OR CONCAT(arc.title,arc.keywords,arc.shorttitle) REGEXP '($k)'"; "

ソース コードの 87 行目でログアウトします: //$keyword .= ($keyword=='' ? " CONCAT(arc.keywords,' ',arc.title) LIKE '%$k%' " : " OR CONCAT(arc.keywords,' ',arc.title) LIKE '%$k%' ");

dede:likearticle記事タグとtagタグの関連付けに誤りがある場合の対処方法

Computer Mutual Aid Network Add Code 意味: オリジナルブラー クエリ文については、作成者はここに短いタイトルを追加し、それをクエリしたいと考えていましたが、あいまいなクエリである linke を使用するのが好きではないため、ここでは REGEXP クエリに変更しました。

ステップ 4: 次のコードを行 107 の下に追加して保存します。

コードは次のとおりです:

/**
按tag标签关联文章内容 query2为备用,如果query为空的话,第二个就直接显示出来
*/
$query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath FROM `dede_archives` arc LEFT JOIN `dede_arctype` tp on arc.typeid=tp.id WHERE $keyword and arc.ismake = 1 and arc.id <> $arcid ORDER BY arc.sortrank desc LIMIT 0,$row";
$typeids=$refObj->Fields[&#39;typeid&#39;];//取出当前栏目ID
$query2 = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath FROM `dede_archives` arc LEFT JOIN `dede_arctype` tp on arc.typeid=tp.id WHERE FIND_IN_SET(&#39;c&#39;, arc.flag)>0 and arc.ismake = 1 And (arc.typeid in ($typeids) or arc.typeid2 in($typeids) or CONCAT( &#39;,&#39;, arc.typeid2, &#39;,&#39; ) LIKE &#39;%,$typeids,%&#39; ) And arc.arcrank > -1 ORDER BY arc.sortrank desc LIMIT 0,$row";
/*query3是判断是否为空用的*/
$query3 = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath FROM dede_archives arc LEFT JOIN dede_arctype tp on arc.typeid=tp.id WHERE $keyword and arc.ismake = 1 and arc.id <> $arcid ORDER BY arc.sortrank desc LIMIT 0,$row";//这里的SQL具体按自己的数据库的表字段写吧,我这是直接写死了,哎没办法,能力有限。
/*
这里是判断tags标签查询的是否为空值,如果是空值,就全部使用推荐返回值,如果有值,就直接显示tags关联。
*/
$result =mysql_query($query3);//query36判断专用的,主要是作者不会用SetQuery呀,郁闷。我是直接拼的SQL
if(mysql_num_rows($result)<1){
$dsql->SetQuery($query2);
}else{
$dsql->SetQuery($query);
}
ログイン後にコピー

次は、ソース コードの 101 行目から 107 行目までのすべてのログアウトの画像です。画像をクリックすると、大きな画像が表示されます:

dede:likearticle記事タグとtagタグの関連付けに誤りがある場合の対処方法 #上記コードの意味: タグタグで記事内容に関連付けられたクエリ2はバックアップであり、タグタグでクエリされたデータが空の場合は2番目のクエリを使用できます。

ステップ 5: 元のコードの 117 行目に次のコードを追加して保存します。

コードは次のとおりです:

$typeids=$refObj->Fields[&#39;typeid&#39;];//取出当前栏目ID
$query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath FROM `dede_archives` arc LEFT JOIN `dede_arctype` tp on arc.typeid=tp.id WHERE FIND_IN_SET(&#39;c&#39;, arc.flag)>0 and arc.ismake = 1 And (arc.typeid in ($typeids) or arc.typeid2 in($typeids) or CONCAT( &#39;,&#39;, arc.typeid2, &#39;,&#39; ) LIKE &#39;%,$typeids,%&#39; ) And arc.arcrank > -1 ORDER BY arc.sortrank desc LIMIT 0,$row";
$dsql->SetQuery($query);
ログイン後にコピー

次は、ソース コードの 111 行目から 117 行目までのすべてのログアウトの画像です。画像をクリックすると、大きな画像が表示されます:

#上記のコードの意味: 5 番目のステップは、tags タグにコンテンツがあるかどうかを確認することであり、5 番目のステップは、tags タグが空でない場合に実行される SQL です。 dede:likearticle記事タグとtagタグの関連付けに誤りがある場合の対処方法

ステップ 6: 完了したら、スペースにアップロードします。作者はコードの効果を実証しません。実際に効果を確認したい場合は、この記事の右側にある関連記事を読んでください。 。

一部のネチズンは SQL に敏感ではないため、この記事に書かれていることは理解できず、変更できないと考えるかもしれません。問題ありません。これはダウンロード アドレスです: likearticle .lib.rar

以上がdede:likearticle記事タグとtagタグの関連付けに誤りがある場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート