web-dev-qa-db-ja.com

分類法用のフィルターを保存

他のページやWordなどの他のソースからテキストをコピーするときに、主に私の編集者によって公開されている、望ましくないHTMLを取り除きたいです。

だから私は使う

add_filter( 'content_save_pre' , 'my_function', 10, 1 );

投稿内のコンテンツのため。

タクソノミー/用語とその説明についても同じことをしたいのですが、WordPressのドキュメントにフィルタが見つからず、コードにも何も見つかりませんでした。

2
Christoph Daum

例えばあります次の動的 sanitize_term_fields() フィルタ

  • 編集コンテキスト用のedit_term_{$field}フィルタ
  • dbコンテキスト用のpre_term_{$field}フィルタ
  • rssコンテキスト用のterm_{$field}_rssフィルタ
  • term_{$field}フィルタ(デフォルト)

そして分類学特有のものも:

  • 編集コンテキスト用のedit_{$taxonomy}_{$field}フィルタ
  • dbコンテキスト用のpre_{$taxonomy}_{$field}フィルタ
  • rssコンテキスト用の{$taxonomy}_{$field}_rssフィルタ
  • {$taxonomy}_{$field}フィルタ(デフォルト)

コンテキストがrawの場合、上記のフィルタはどれも適用されません。

dbコンテキストはwp_insert_term()およびwp_update_term()内で使用されます。

$args = sanitize_term($args, $taxonomy, 'db');

wp_insert_term()フィルタとpre_insert_termフィルタもあります。

/**
 * Filters a term before it is sanitized and inserted into the database.
 *
 * @since 3.0.0
 *
 * @param string $term     The term to add or update.
 * @param string $taxonomy Taxonomy slug.
 */
 $term = apply_filters( 'pre_insert_term', $term, $taxonomy );

以下は、ポストタグ分類法の場合の用語説明の簡単なデモ例です。

編集コンテキスト:

add_filter( 'edit_post_tag_description', 'wp_strip_all_tags' );

dbコンテキスト:

add_filter( 'pre_post_tag_description', 'wp_strip_all_tags' );

これをテストし、自分のニーズにさらに制限したいと思うかもしれません。

注意:フロントエンドのterm descriptionを出力するところでそれを取り除くだけの方が良いかもしれません、それであなたはバックエンドのユーザー入力を台無しにしませんか?

4
birgire