私はカスタム代謝物をかなり頻繁に使用します。非常にしばしば私は代謝物に「リンク」フィールドを持っています。私は単純なテキスト入力フィールドを使ってきましたが、WordPressのコンテンツエディタが使用する同じ「リンクを挿入」ダイアログを呼び出すボタンを入れる方法を理解しようとしています。それは可能ですか?メタボックスにWordPressのリンク挿入ダイアログを使用しますか?
答えて
wordpressエディタはtinyMCEをエディタとして使用します。しかし、投稿に関連するカスタムフィールドは特別な可動ボックスに表示され、投稿のthe documentation that creates the edition boxは、WYSIWYGエディタが追加されるとDOMの周りを移動できないため、そのような種類に追加することはできませんボックスの。
これは、探している機能の種類を追加する場合、おそらくその画面がどのように生成されるのかをコード内で手でトレースすることによって、ほとんどのものを再実装する必要があることを意味します。
リンクボックスを呼び出すには、まず必要なjsをエンキューしてから、wp-link jsファイルメソッドと対話します。
はあなたのUIを設定/
1/wp_enqueue_script('wp-link');
2 WP-リンクをエンキューしていることを確認してください。私は通常、リンクダイアログを呼び出すためのボタンとリンクURLを扱うためのテキストフィールドを使用します。
3 /呼び出しリンク対話
$('body').on('click', '.link-btn', function(event) {
wpActiveEditor = true; //we need to override this var as the link dialogue is expecting an actual wp_editor instance
wpLink.open(); //open the link popup
return false;
});
4 /ハンドルリンクは
$('body').on('click', '#wp-link-submit', function(event) {
var linkAtts = wpLink.getAttrs();//the links attributes (href, target) are stored in an object, which can be access via wpLink.getAttrs()
$('your_url_textfield').val(linkAtts.href);//get the href attribute and add to a textfield, or use as you see fit
wpLink.textarea = $('body'); //to close the link dialogue, it is again expecting an wp_editor instance, so you need to give it something to set focus back to. In this case, I'm using body, but the textfield with the URL would be fine
wpLink.close();//close the dialogue
//trap any events
event.preventDefault ? event.preventDefault() : event.returnValue = false;
event.stopPropagation();
return false;
});
5 /ハンドルリンクは
$('body').on('click', '#wp-link-cancel, #wp-link-close', function(event) {
wpLink.textarea = $('body');
wpLink.close();
event.preventDefault ? event.preventDefault() : event.returnValue = false;
event.stopPropagation();
return false;
});
行う必要がありますについては、それをキャンセル保存します。私はメタボックスクラスで同じアプローチを使用し、それは問題なく動作するようです。私はリンクダイアログのhtml要素への参照をハードコーディングしているので、そのハックのabit。対話には外部APIが必要です。 WPに追加するのは難しいかもしれません。
私はそれが働くことができるかどうかわかります。ありがとう! – user1380281
素晴らしい、ありがとう!どんな種類のコンテキスト属性(wpLinkオブジェクトの中にあるかもしれません)があるかどうかも知っていますか?私は 'wp-link-submit'で様々な対話' link-btn'トリガに対して異なる動作をしたいと思います。 – xsonic
- 1. wordpressに画像のメタボックスをアップロードして使用するには?
- 2. Wordpress - オプションボックスにメタボックスを追加
- 3. wordpressメタボックス\カスタムフィールドの検証
- 4. jQuery UIモーダルボックス/ダイアログに別のページを挿入しますか?
- 5. WordPressのメタボックスの最後に挿入された数字を削除するには?
- 6. スペルチェック機能付きのWordpressページへの入力/メタボックスの追加
- 7. 挿入時のScope_Identityを使用したテーブルのリンク
- 8. wordpress login - GETからのメールを挿入しますか?
- 9. CSSの後にmailtoリンクを挿入しますか?
- 10. メタボックスから複数のファイルを取得しますが、私のWordPressのサイトで
- 11. TINYMCE:画像を挿入ダイアログにコンポーネントを追加します。
- 12. WordPressメタボックスを含む検索結果
- 13. WordPressのpageloadイベントに文のエラーを挿入します。
- 14. oracle plsqlのdbリンクを使用してvarchar(max)にclobを挿入する
- 15. リンクされたリストを使用するプライオリティキューの挿入方法
- 16. WordPressのカスタムフィールドを自動的に挿入します
- 17. Wordpressの連絡先フォーム7をカスタムテンプレートページに挿入します
- 18. 外部キーを使用してテーブルに挿入しますか?
- 19. Wordpressを使ってWordpressデータベースのテーブルにデータを挿入する$ wpdb
- 20. 私はカスタムポストタイプを使用し、カスタムポストタイプでメタボックスを使用しています
- 21. reStructuredTextの太字のテキストにリンクを挿入します。
- 22. build.xmlのみを使用してビルドターゲットを挿入しますか?
- 23. リンクを挿入する
- 24. WordpressでページテキストエリアにJavaScriptを挿入する
- 25. WordpressショートコードにGoogleChartを挿入する
- 26. WordPressアーカイブに広告を挿入する
- 27. EF6を使用してmysqlデータベースにクエントを挿入または挿入する
- 28. phpへのリンクを挿入
- 29. Wordpressメタボックスでダウンロードした画像をファイルで削除する
- 30. Excel内にOutlook電子メールへのリンクを挿入します
これは実際にOPが尋ねた質問に答えません – shahar