¿Es la única forma de agregar términos de taxonomía a través del panel de administración?

22 oct 2013, 16:41:00
Vistas: 121
Votos: -2

¿Es posible registrar términos de taxonomía programáticamente desde un plugin? Me gustaría agregar una taxonomía personalizada 'área geográfica' y también precargar la taxonomía con una lista de áreas del Reino Unido.

public function sample_taxonomy() {
    // crear una nueva taxonomía
    register_taxonomy(
        'resellers',
        'wps-reseller',
        array(
            'label' => __( 'Áreas Geográficas' ),
            'rewrite' => array( 'slug' => 'area' ),
            'capabilities' => array(
                'assign_terms' => 'edit_guides',
                'edit_terms' => 'publish_guides'
            )
        )
    );
}

Además, ¿cómo podría ejecutar este código solo una vez como parte de la activación del plugin? Estoy utilizando las funciones de activación del boilerplate de plugins de WordPress.

2
Comentarios

¿Ya has buscado en el sitio?

kaiser kaiser
22 oct 2013 16:48:56

Aparentemente no lo suficiente. Mis disculpas.

codecowboy codecowboy
22 oct 2013 17:04:42
Todas las respuestas a la pregunta 1
9

Creo que estás buscando wp_insert_term().

Un ejemplo del Codex:

$parent_term = term_exists( 'fruits', 'product' ); // se devuelve un array si se especifica la taxonomía
$parent_term_id = $parent_term['term_id']; // obtener el ID numérico del término
wp_insert_term(
  'Manzana', // el término
  'product', // la taxonomía
  array(
    'description'=> 'Una deliciosa manzana.',
    'slug' => 'manzana',
    'parent'=> $parent_term_id
  )
);
22 oct 2013 16:51:41
Comentarios

Gracias. Parece que esto es lo que necesitaba. Si lo agrego en 'init' según el codex, se seguirá ejecutando en cada solicitud, ¿no es así? ¿Hay alguna forma de ejecutarlo solo una vez?

codecowboy codecowboy
22 oct 2013 18:17:26

Sí, no quieres que se ejecute en cada carga de página, pero necesitarás determinar cuándo debe ejecutarse esto. No puedo decirte eso. ¿Al activar el plugin? ¿Cuando guardas una entrada? ¿En algún otro momento?

s_ha_dum s_ha_dum
22 oct 2013 18:30:10

Lo intenté en una función de activación de plugin pero no pareció ejecutarse.

codecowboy codecowboy
22 oct 2013 18:41:30

¿quizás porque el tipo de entrada personalizada no existe al activar?

codecowboy codecowboy
22 oct 2013 19:06:11

No has publicado suficiente código/contexto para dar una solución adecuada sobre cómo ejecutar este código solo una vez (y esa tampoco era parte de la pregunta original), pero probablemente querrás enganchar una función en la activación del plugin que a su vez enganche tu función de "insertar términos".

s_ha_dum s_ha_dum
22 oct 2013 19:09:46

Gracias. ¿Puedes enlazar a algún recurso confiable que describa cómo enganchar una función en la activación del plugin?

codecowboy codecowboy
22 oct 2013 19:13:39

¿Qué tal esto? http://wordpress.stackexchange.com/search?q=plugin+activation

s_ha_dum s_ha_dum
22 oct 2013 19:18:09

Debería señalar que tu pregunta ha recibido votos negativos y se ha votado para cerrarla debido a la falta de esfuerzo de investigación (según mi opinión) y esa última pregunta en los comentarios sufre del mismo error. Por favor, haz algo de investigación por tu cuenta.

s_ha_dum s_ha_dum
22 oct 2013 19:24:22

continuemos esta discusión en el chat

codecowboy codecowboy
23 oct 2013 12:04:39
Mostrar los 4 comentarios restantes