Convertir taxonomía en custom post type

Convertir taxonomía en custom post type

Código que permite convertir los términos de una taxonomía en un contenido personalizado o custom post type.

function make_posts_from_taxonomy($taxonomy) {
if(did_action('init') === 1) { //Se asegura de que la función sólo se ejecuta una vez
// Get all Taxonomy
$args = array(
	'parent' => 0,
	'hide_empty' => false,
	);
	
$taxonomy = 'your_taxonomy'; //Definir taxonomía personalizada (fuente)
$post_type = 'your_CPT'; // Definir tipo de entrada personalizado (objetivo)

$terms = get_terms( $taxonomy, $args);

foreach ($terms as $term) {
	set_time_limit(20); //Intento de evitar tiempos de espera
	$t_id = $term->term_id;
	$term_meta = get_option( "taxonomy_$t_id" );
	$name = $term->name; //Título
	$slug = $term->slug; //Slug
	$description = $term->description; //Descripción
	
	//Arriba encuentra todos los datos de la Taxonomía Personalizada y los metadatos asociados.
	//Hacemos un nuevo post para cada artículo, utilizando los mismos detalles de la Taxonomía
	if( null == get_page_by_title( $name ) ) { // Si el post no existe.
		$new_post = array(
			
			'post_title' => $name,
			'post_content' => $description, //Utilizar la descripción de la taxonomía para el contenido de la entrada
			'post_name' => $slug,
			'post_status' => 'publish',
			'post_type' => $post_type,
			
	);
	//Insert post
	$post_id = wp_insert_post( $new_post );
	
	//Insertar meta donde existe.
	if (!empty($term_meta['buy_download_meta'])) : update_post_meta ($post_id, '_cmb_buy', $term_meta['buy_download_meta']); endif;
	if (!empty($term_meta['custom_term_meta'])) : update_post_meta ($post_id, '_cmb_discogs', $term_meta['custom_term_meta']); endif;
	if (!empty($term_meta['itunes_meta'])) : update_post_meta ($post_id, '_cmb_itunes', $term_meta['itunes_meta']); endif;
	if (!empty($term_meta['artist_showcase_meta'])) : update_post_meta ($post_id, '_cmb_showcase', $term_meta['artist_showcase_meta']); endif;

		} else {
	}

	
	}

} 

} 
register_activation_hook( __FILE__, 'make_posts_from_taxonomy' );

¿Te ha gustado este código? Coméntalo con códigosWP:

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio