メインコンテンツへ移動

WeChat 公式アカウント自動返信画像テキストメッセージ

無料2017-11-25#Solution#WordPress微信插件#订阅号自动回复#wordpress wechat plugin#WordPress提高搜索结果相关性

WordPress プラグインを通じて站内搜索結果の自動返信を実装

はじめに

登録アカウントでいくつかの照会メッセージを受け取りました。例えば vue、react などですが、残念ながらキーワード検索を実装する気分になれず、そのまま放置していました

ブログホームページのスタイル問題を修正している時に、以前のブログ記事:微信公共平台图文消息自动生成 を偶然見つけました。そこに WordPress プラグインについて言及されていたので、ついでに登録アカウントに自動返信機能を追加しました

ほら~こんな感じです:

wechat_subscribers

P.S. スタイル問題とは Firefox での話で、コンテナの white-space: no-wrapfloat-right 子要素の改行を引き起こします。Firefox が規範に準拠していないと推測されます。詳細は Demo を参照

P.S. さらに、Firefox57 は確かに以前のバージョンより速くなりました。以前は常にメモリ内で Chrome に先に殴られたような感覚でした

一.プラグイン選択

以前のブログ記事で 2 つのプラグインが言及されていました:

  • WordPress プラグイン wechat_subscribers

特色:最新記事、ランダム記事、検索結果などの自動返信、永久無料

アドレス:https://github.com/Soopro/wechat_subscribers

  • WordPress プラグイン Wechat-Manager

特色:キーワード自動返信最新記事、週/月/年内の最多コメント記事、記事検索結果

アドレス:https://github.com/9IPHP/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_postsget_results など)のみを使用しているためです

2.インストールと有効化

インストール:解凍して得られたフォルダを ftp の wordpress/wp-content/plugins ディレクトリに投げれば、インストール完了です

有効化:WordPress バックエンドに入り、左側メニューからプラグインに入り、「微信订阅号管理」を見つけて有効化

その後、token を通じて WeChat 公式プラットフォームに接続する必要があります

3.token の設定

操作手順:

  1. バックエンド左側メニューで「微信订阅号管理」を見つけ、「プラグイン設定」に入る

  2. token を記入し、変更を保存すると、URL が得られる

  3. WeChat 公式プラットフォームバックエンドに入り、左側「開発/基本設定 -> サーバー設定/設定変更」で「URL」と「Token」を記入(前ステップで得られた URL と自分が記入した Token を使用)。EncodingAESKey をランダム生成し、「平文モード」を選択して送信

  4. (送信成功後に前ページに戻る)サーバー設定を有効化。パネルステータスが「サーバー設定 (有効済み)」になる

これで 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)

    • 趣味性機能(例えば音声照会)

参考資料

コメント

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

コメントを書く