Pour ajouter les taxonmies du type de publication post, la valeur par défaut, alors il est facile d'ajouter la catégorie et les «tags» des taxonmies avec un petit plugin situé à la source ci-dessous.
<?php
/**
* Plugin Name: Attachment Taxonomies
* Plugin URI:
* Text Domain: attachment_taxonomies
* Domain Path: /languages
* Description:
* Version: 1.0.0
* Author: Frank Bültge
* Author URI: http://bueltge.de
* License: GPLv3
*/
add_action( 'init', 'fb_attachment_taxonomies' );
function fb_attachment_taxonomies() {
$taxonomies = array( 'category', 'post_tag' ); // add the 2 tax to ...
foreach ( $taxonomies as $tax ) {
register_taxonomy_for_object_type( $tax, 'attachment' ); // add to post type attachment
}
}
Pour utiliser des taxonomies personnalisées sur les pièces jointes, il est important que vous créiez une taxonomie personnalisée et ce pour le type de publication attachment
, comme le plugin suivant.
<?php
/**
* Plugin Name: Attachment Taxonomies
* Plugin URI:
* Text Domain: attachment_taxonomies
* Domain Path: /languages
* Description:
* Version: 1.0.0
* Author: Frank Bültge
* Author URI: http://bueltge.de
* License: GPLv3
*/
if ( function_exists( 'add_filter' ) )
add_action( 'plugins_loaded', array( 'Fb_Attachment_Taxonomies', 'get_object' ) );
/**
* Add Tags and Categories taxonmies to Attachment with WP 3.5
*/
class Fb_Attachment_Taxonomies {
static private $classobj;
/**
* Constructor, init the functions inside WP
*
* @since 1.0.0
* @return void
*/
public function __construct() {
// load translation files
add_action( 'admin_init', array( $this, 'localize_plugin' ) );
// add taxonmies
add_action( 'init', array( $this, 'setup_taxonomies' ) );
}
/**
* Handler for the action 'init'. Instantiates this class.
*
* @since 1.0.0
* @access public
* @return $classobj
*/
public function get_object() {
if ( NULL === self::$classobj ) {
self::$classobj = new self;
}
return self::$classobj;
}
/**
* Localize plugin function.
*
* @uses load_plugin_textdomain, plugin_basename
* @since 2.0.0
* @return void
*/
public function localize_plugin() {
load_plugin_textdomain(
'attachment_taxonomies',
FALSE,
dirname( plugin_basename( __FILE__ ) ) . '/languages/'
);
}
/**
* Setup Taxonomies
* Creates 'attachment_tag' and 'attachment_category' taxonomies.
* Enhance via filter `fb_attachment_taxonomies`
*
* @uses register_taxonomy, apply_filters
* @since 1.0.0
* @return void
*/
public function setup_taxonomies() {
$attachment_taxonomies = array();
// Tags
$labels = array(
'name' => _x( 'Media Tags', 'taxonomy general name', 'attachment_taxonomies' ),
'singular_name' => _x( 'Media Tag', 'taxonomy singular name', 'attachment_taxonomies' ),
'search_items' => __( 'Search Media Tags', 'attachment_taxonomies' ),
'all_items' => __( 'All Media Tags', 'attachment_taxonomies' ),
'parent_item' => __( 'Parent Media Tag', 'attachment_taxonomies' ),
'parent_item_colon' => __( 'Parent Media Tag:', 'attachment_taxonomies' ),
'edit_item' => __( 'Edit Media Tag', 'attachment_taxonomies' ),
'update_item' => __( 'Update Media Tag', 'attachment_taxonomies' ),
'add_new_item' => __( 'Add New Media Tag', 'attachment_taxonomies' ),
'new_item_name' => __( 'New Media Tag Name', 'attachment_taxonomies' ),
'menu_name' => __( 'Media Tags', 'attachment_taxonomies' ),
);
$args = array(
'hierarchical' => FALSE,
'labels' => $labels,
'show_ui' => TRUE,
'show_admin_column' => TRUE,
'query_var' => TRUE,
'rewrite' => TRUE,
);
$attachment_taxonomies[] = array(
'taxonomy' => 'attachment_tag',
'post_type' => 'attachment',
'args' => $args
);
// Categories
$labels = array(
'name' => _x( 'Media Categories', 'taxonomy general name', 'attachment_taxonomies' ),
'singular_name' => _x( 'Media Category', 'taxonomy singular name', 'attachment_taxonomies' ),
'search_items' => __( 'Search Media Categories', 'attachment_taxonomies' ),
'all_items' => __( 'All Media Categories', 'attachment_taxonomies' ),
'parent_item' => __( 'Parent Media Category', 'attachment_taxonomies' ),
'parent_item_colon' => __( 'Parent Media Category:', 'attachment_taxonomies' ),
'edit_item' => __( 'Edit Media Category', 'attachment_taxonomies' ),
'update_item' => __( 'Update Media Category', 'attachment_taxonomies' ),
'add_new_item' => __( 'Add New Media Category', 'attachment_taxonomies' ),
'new_item_name' => __( 'New Media Category Name', 'attachment_taxonomies' ),
'menu_name' => __( 'Media Categories', 'attachment_taxonomies' ),
);
$args = array(
'hierarchical' => TRUE,
'labels' => $labels,
'show_ui' => TRUE,
'query_var' => TRUE,
'rewrite' => TRUE,
);
$attachment_taxonomies[] = array(
'taxonomy' => 'attachment_category',
'post_type' => 'attachment',
'args' => $args
);
$attachment_taxonomies = apply_filters( 'fb_attachment_taxonomies', $attachment_taxonomies );
foreach ( $attachment_taxonomies as $attachment_taxonomy ) {
register_taxonomy(
$attachment_taxonomy['taxonomy'],
$attachment_taxonomy['post_type'],
$attachment_taxonomy['args']
);
}
}
} // end class
Voir le résultat sur la capture d'écran suivante, également la différence - plus facile que mes petits mots à la source. Mais l'image de ma personne dans l'exemple de capture d'écran n'est pas pertinente pour la source;)
Petits conseils: l'interface utilisateur de la boîte modale pour ajouter des médias sur le type de publication est peu différente de celle de l'écran d'édition sur la pièce jointe. Les taxonmies hiérarchiques n'ont qu'un arbre dans l'écran d'édition. Dans la zone modale, il s'agit d'un champ de saisie et la taxe fonctionne avec une virgule comme séparateur. Voir également cet article d'Helen sur le blog WP Core. Mais voir les taxonomies personnalisées pour les «balises» et les «catégories» également dans une capture d'écran.
'show_admin_column' => true
.update_count_callback
à_update_generic_term_count
. Voir l'entrée mise à jour du Codex pour savoir pourquoi: codex.wordpress.org/Function_Reference/…Je vais étendre la réponse de Frank en ajoutant un filtre de taxonomie à la liste des administrateurs pour un type de publication personnalisé?
À la recherche des deux choses, des catégories de médias et du filtre de taxonomie, j'ai fusionné le code de Frank avec la réponse de Kaiser dans ce post. J'ai également ajouté une touche supplémentaire pour ajouter le type de publication, où la pièce jointe a été téléchargée, en tant que catégorie.
Il produit ceci:
la source
Le plugin My Media Categories le fera pour vous - il nettoie même l'interface du Media Modal afin que vous obteniez toujours la liste des cases à cocher, par défaut, tout ce que vous obtenez est des champs de texte.
la source