>CMS 튜토리얼 >Dedecms >dede:likearticle 기사 태그와 태그 태그 간의 연결에 오류가 있는 경우 수행할 작업

dede:likearticle 기사 태그와 태그 태그 간의 연결에 오류가 있는 경우 수행할 작업

藏色散人
藏色散人원래의
2019-12-27 10:12:162150검색

dede:likearticle 기사 태그와 태그 태그 간의 연결에 오류가 있는 경우 수행할 작업

dede: likearticle 기사 태그와 태그 태그가 잘못 연결되어 있으면 어떻게 해야 하나요?

DreamWeaver 5.7에는 기사를 연결하는 데 사용되는 dede:likearticle 태그가 있습니다. 그러나 이를 사용하는 과정에서 저자는 Dreamweaver 5.7을 사용하여 검색할 때 실제로 쓸모가 없다는 사실을 발견했습니다. 아직도 마지 못해 받아들일 수 있나요? 작성자님이 dede의 검색 기능을 이 같은 글로 대체했는데 훨씬 좋아진 것 같습니다.

추천 학습: Dreamweaver cms

코드 소개

저자는 기사를 태그와 연결하도록 기본 키워드를 변경하고, 태그로 퍼지 쿼리를 실행한 후 쿼리가 데이터가 비어 있으면 그냥 판단을 추가했습니다. 이 열 아래의 모든 추천 기사를 직접 쿼리하면 더 좋습니다. 즉, 항상 반환 값이 있습니다.

글쓴이는 태그가 없는 글도 있고, 태그가 있는 글도 없는 것으로 판단하여 태그가 있는지 먼저 확인하고, 태그가 있는 경우 추천 글을 직접 쿼리합니다. , 쿼리에서 기사가 비어 있는 것으로 확인되면 현재 열 아래의 추천 기사도 반환됩니다.

likearticle과 태그 태그를 연결하기 위한 솔루션/단계

1단계: 메모장이나 일부 도구를 사용하여 "루트 디렉터리 includetagliblikearticle.lib.php" 파일을 엽니다.

2단계: "['keywords']"를 검색하고 모두 ['tags']로 바꾸고 저장합니다.

컴퓨터 상호 지원 네트워크 참고:

원래 코드 줄 55: $keyword = ( !empty($refObj->Fields['keywords']) ? $refObj->Fields['keywords'] : '' ) ;

원래 코드 줄 75: if(!empty($refObj->Fields['keywords']))

원래 코드 줄 77: $keywords =explore(',' , Trim($refObj->Fields) ['keywords']));

3단계: "$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 기사 태그와 태그 태그 간의 연결에 오류가 있는 경우 수행할 작업

Computer Mutual Aid Network에서 코드 의미 추가: 원래 퍼지 쿼리 문에 작성자가 여기에 짧은 제목을 추가하여 쿼리도 했지만 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 기사 태그와 태그 태그 간의 연결에 오류가 있는 경우 수행할 작업

위 코드의 의미 : 태그로 기사 내용 연결 태그 쿼리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라인 전체 로그아웃 사진입니다. 사진을 클릭하시면 더 큰 사진을 보실 수 있습니다.

dede:likearticle 기사 태그와 태그 태그 간의 연결에 오류가 있는 경우 수행할 작업

위 코드의 의미 : 다섯 번째 단계는 태그 태그에 내용이 있는지 확인하는 것입니다. 네, 5단계는 태그 태그가 비어 있지 않을 때 실행되는 SQL입니다.

6단계: 완료 후 스페이스에 업로드하세요. 작성자는 코드의 효과를 보여주지 않습니다. 실제로 효과를 보고 싶다면 이 글 오른쪽에 있는 관련 글을 읽어보세요.

일부 네티즌들은 SQL에 민감하지 않기 때문에 이 글에 쓰여진 내용을 이해할 수 없고 변경할 수 없다고 생각할 수도 있습니다. 다운로드 주소는 likearticle.lib.rar입니다.

위 내용은 dede:likearticle 기사 태그와 태그 태그 간의 연결에 오류가 있는 경우 수행할 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.