はじめに
登録アカウントでいくつかの照会メッセージを受け取りました。例えば 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 公式プラットフォームへの接続には 1 つの 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)
-
趣味性機能(例えば音声照会)
-

コメントはまだありません