web-dev-qa-db-ja.com

動的にプラグイン構文を生成する

私はWP用のオーディオプレーヤープラグインをダウンロードしました。構文はとても単純です。ポストエディタ/抜粋に[audio:my_file.mp3]という行を追加して、ループ内でそれをそれぞれthe_content()またはthe_excerpt()で呼び出します。

ユーザーがファイルをアップロードするメタボックスを構築したいと思います。それに応じてプラグイン構文が自動的に生成されます。メタデータをDBに挿入する方法は知っていますが、get_post_meta()またはthe_meta()で引っ張っても、目的のプラグインコンテンツ(オーディオプレーヤーなど)に置き換えることなく、そのまま構文を取得できます。

私はフィルタdefault_contentを使ってエディタ/抜粋に構文を動的にインジェクトすることを考えましたが、このフィルタは通常の投稿にのみ適用されますが、mineはカスタム投稿タイプ(オーディオ)です。あなたのアイディアは大歓迎です。

1
Matanya

カスタムTinyMCEボタンのように聞こえるのが仕事の理想的な候補でしょう。

WordPressのコーデックスでは、作成方法に関する優れた記事 を作成しています 。あなたは本質的にあなた自身のコールバックでTinyMCEツールバーにボタンを追加するでしょう、それはオーディオファイルを選択してそして自動的にショートコードを挿入するためにモーダルポップアップを引き起こすことができます。

同様に、アップロードされたメディアアイテムの出力にフックして、そのアイテムのショートコードを投稿にリンクするリンクを表示することもできます(Thickboxポップアップ内にアップロードされた場合)。 。

利用可能なフックとフィルタについてはwp-admin/includes/media.phpget_media_item()get_attachment_fields_to_edit()を調べてください。

2
TheDeadMedic