서두
등록 계정에서 몇 가지 조회 메시지를 받았습니다. 예를 들어 vue, react 등이지만, 안타깝게도 키워드 검색을 구현할 마음이 없어서 그대로 방치했습니다
블로그 홈페이지 스타일 문제를 수정하다가 우연히 이전 블로그 게시물을 발견했습니다: 微信公共平台图文消息自动生成 거기서 WordPress 플러그인에 대해 언급되어 있어서, 김에 등록 계정에 자동 응답 기능을 추가했습니다
자~이렇게 생겼습니다:
P.S. 스타일 문제는 Firefox 에서의 이야기로, 컨테이너의 white-space: no-wrap 이 float-right 자식 요소의 줄바꿈을 유발합니다. Firefox 가 규격을 준수하지 않는다고 추측됩니다. 자세한 내용은 Demo 참조
P.S. 또한, Firefox57 은 확실히 이전 버전보다 훨씬 빨라졌습니다. 이전에는 항상 메모리 안에서 Chrome 에게 먼저 맞은 것 같은 느낌이었습니다
일.플러그인 선택
이전 블로그 게시물에서 2 가지 플러그인이 언급되었습니다:
- WordPress 플러그인 wechat_subscribers
특징: 최신 게시물, 랜덤 게시물, 검색 결과 등 자동 응답, 영구 무료
- WordPress 플러그인 Wechat-Manager
특징: 키워드 자동 응답 최신 게시물, 주/월/년 내 최다 댓글 게시물, 게시물 검색 결과
1 년 만에 다시 보니, 둘 다 아직 유지보수 중인 것 같았습니다. 사용해 본 후 wechat_subscribers 를 선택했습니다. 주요 우위:
-
commit 이 더 전문적으로 보이고, 더 성실합니다. 예를 들어
rename method.,rename class.,clean comment. -
긴 changelog 가 있어, 신뢰할 수 있다고 느껴집니다
-
token 검증 통과 (Wechat-Manager 의 token 은 항상 검증에 통과하지 못했습니다...그래서, 실제로는선택의 여지가 없었습니다)
단점:
- 문서가 너무 나쁘고, readme 에 자세한 설치 단계가 없으며, 형식도 매우 지저분합니다
다행히 WeChat 공식 플랫폼 연결에는 token 하나만 필요해서, 시행착오 끝에 사용할 수 있었습니다. 효과는 비교적 만족스럽습니다
이.설치 단계
1.플러그인 소스 코드 다운로드
https://github.com/ayqy/wechat_subscribers
기본 master 브랜치로 문제없습니다. 다운로드하여 압축 해제
P.S. WordPress 4.3.13 에서 실제로 테스트하여 사용 가능했습니다. 다른 버전도 문제없을 것입니다. 플러그인에는 의존성이 거의 없고, 몇 개의 WordPress API(get_posts, get_results 등) 만 사용했기 때문입니다
2.설치 및 활성화
설치:압축 해제하여 얻은 폴더를 ftp 의 wordpress/wp-content/plugins 디렉토리에 던지면, 설치 완료입니다
활성화:WordPress 백엔드로 들어가고, 왼쪽 메뉴에서 플러그인으로 들어가 "微信订阅号管理"를 찾아 활성화
그런 다음 token 을 통해 WeChat 공식 플랫폼에 연결해야 합니다
3.token 설정
작업 단계:
-
백엔드 왼쪽 메뉴에서 "微信订阅号管理"를 찾아 "플러그인 설정"으로 들어감
-
token 을 기입하고 변경 사항 저장, URL 을 얻음
-
WeChat 공식 플랫폼 백엔드로 들어가고, 왼쪽 "개발/기본 설정 -> 서버 설정/설정 수정"에서 "URL"과 "Token"기입 (전 단계에서 얻은 URL 과 자신이 기입한 Token 사용). EncodingAESKey 를 무작위 생성하고, "평문 모드"선택, 제출
-
(제출 성공 후 이전 페이지로 돌아감) 서버 설정 활성화, 패널 상태가 "서버 설정 (활성화됨)"으로 변경
이제 token 설정이 완료되었습니다 (양측이既定의 "프로토콜"에 따라 신뢰 관계를 구축했습니다)
4.자동 응답 규칙 추가
시험 단계입니다. WordPress 백엔드로 들어가고, 왼쪽 "微信订阅号管理/사용자 정의 응답 -> 새 응답 추가"
플러그인은 3 가지 트리거 메커니즘 (메시지 매칭 메커니즘) 을 제공합니다:
-
일반:키워드 모호 매칭
-
기본:default case, 다른 규칙이 모두 매칭되지 않을 때 이를 사용
-
구독:새로운 팔로우 시 트리거
예를 들어 테스트 규칙 1 개 추가:
回复标题 test
关键字 测试,test,t
触发 普通
发布 勾选
类型 纯文本
内容 hoho
저장하고 종료, WeChat 에서 등록 계정으로 들어가 "테스트 또는 test 또는 t"를 보내면, 즉시 응답 "hoho"를 받습니다
응답 메시지 형식은 다음을 지원합니다:
-
순수 텍스트
-
이미지 텍스트 메시지:WeChat 공식 플랫폼의 이미지 텍스트 메시지와 유사,配图와 게시물 링크 제공
-
최신 메시지:최신 몇 개 게시물
-
랜덤 메시지:무작위로 몇 개 게시물 선택
-
검색 키워드:사이트 내 검색 결과
가장 유용한 것은 검색 키워드일 것입니다. 사용자가 원하는 블로그 게시물 목록을 전달할 수 있습니다. 물론 기본 기능도 나쁘지 않습니다
삼.검색 결과 최적화
시험해 보니 응답 결과와 조회 키워드의 관련도가 크지 않았습니다. 예를 들어:
关键字 redux
結果
MobX
react-redux 源码解读
dva
플러그인은 기본적으로 WordPress 네이티브 API get_posts 를 사용하며, 게시일 순으로 정렬 하므로, 얻은 결과가 그다지 과학적이지 않습니다. MobX 와 dva 는 단순히 콘텐츠에서 redux 를 조금 언급했을 뿐인데, 포함되었습니다
맞습니다, 우리는검색 결과의 관련도를 향상시켜야 합니다. 가장 직접적인 생각은 가중치를 추가하고, 가중치로 종합 정렬하는 것입니다. 예를 들어:
매칭 항목 가중치
제목 3
분류 1
tag 1
콘텐츠 0.5
댓글 0.3
모두 매칭되는 게시물 목록의 가중치를 계산하고, 내림차순으로 정렬합니다. 이것이 제가 원하는 결과입니다. 해당하는 PHP 코드는 다음과 같습니다:
// from interface.php/getSearchPosts
// ID, post_content, post_excerpt, post_title
// extra: post_type, post_modified
$posts = $wpdb->get_results($wpdb -> prepare("select ID,post_content,post_excerpt,post_title,post_type,post_modified from db_wp_posts where post_status = 'publish' order by ((CASE WHEN post_title LIKE '%{$keyword}%' THEN 2 ELSE 0 END) + (CASE WHEN post_content LIKE '%{$keyword}%' THEN 1 ELSE 0 END)) DESC, post_modified DESC, ID ASC limit $re_count"));
db_wp_posts 테이블에서 게시된 게시물 중 제목과 콘텐츠가 키워드와 매칭되는 것을 찾고, 가중치를 추가하며 (제목 가중치 2, 콘텐츠 가중치 1), 내림차순으로 정렬하여, 전 $re_count 개의 조회 결과를 가져옵니다
주의, 여기서 SQL 의단순 case 함수를 사용했습니다. 매우 유연한 작은 기술입니다
사.소스 코드
Github 주소:https://github.com/ayqy/wechat_subscribers
구조
wechat_subscribers/
css/
img/
js/
language/ # 다국어 지원, WordPress 플러그인 관용의 pm,po 파일
__wechatsucks__.php # 흑기술, token 검증에 통과하지 않을 때 시도해 볼 수 있음
_edit.php # 아래 3 개도 백엔드 페이지 및 설정 폼
_general.php
_history.php
_settings.php
ajax_request_handle.php # 설정 폼에 필요한 게시물 목록, 현행 조회
class-wpwsl-general.php # 새 규칙 페이지 등록
class-wpwsl-history.php # 메시지 기록 페이지
class-wpwsl-history-table.php # 메시지 기록 페이지 등록
class-wpwsl-list-table.php # 게시물 테이블 상호작용, 정렬/페이지네이션
class-wpwsl-settings.php # 왼쪽 메뉴에 등록
content.php # 플러그인 홈페이지, 모두 쓸데없는 소리
index.php # 사용 안 함
interface.php # **핵심 부분** 사이트 내 검색, 메시지 송수신
posttype_wpwsl_template.php # 백엔드 설정 데이터 형식
wpwsl_core.php # 플러그인 진입, 등록
todo
fork 해 온 것은 몇 가지 일을 하고 싶어서였습니다:
-
readme 다시 작성 (원본이 너무 비정상적이어서, 보면 사용하기 싫어짐) 100%
-
검색 결과를 관련도 순으로 정렬 (기본은 날짜 순 정렬) 100%
-
기능 확장 0%
-
키워드 지원 타입 상수 (예: number)
-
명령 지원 (예: 메시지, topN)
-
재미 기능 (예: 음성 조회)
-

아직 댓글이 없습니다