Creación de sección para series - Temporadas y Capítulos

  • Autor Autor Juanjo87
  • Fecha de inicio Fecha de inicio
J

Juanjo87

Gamma
Diseñador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
No consigo resolverlo ni encuentro ningún tutorial o sitio que me explique como hacerlo, por favor, ayuda.

Pues voy directo al grano.
Necesito crear una sección en la pagina que estoy haciendo para las series.
Tengo creado un pos type llamado "películas" en el que tengo creada las taxonomías de genero, edad, año.... pero ahora, necesito crear algo similar para las series.
Ya tengo creado el post type "series" pero, como hago para que dentro de serie pueda ir añadiendo temporadas y a cada temporada sus correspondientes capítulos?

la estructura debería ser algo así

Serie
|
|-------------------- | ---------------------|
temporada 1 temporada2 .....
| | |
cap1. cap.1 ....
cap.2 cap.2 ....
..... .....


Serie:
temporada 1: cap1, cap2, cap3...
temporada 2: cap1, cap2, cap3...
temporada 3: cap1, cap2, cap3...

Me ayuda alguien a resolver esto?

((Se me descuadra el esquema))
Gracias.



algún tutorial o alguna pista de como puedo buscar esto en google?

EDITO*
Para que no tengan que lees hasta el final, esto es lo que estoy intentando hacer y no lo consigo.
tengo que crear un multibox repetible o algo asi por lo que estoy buscando, pero todo lo encuentro en ingles y me esta costando mucho trabajo.
Necesito ayuda

Ver el archivo adjunto 88427
 
Última edición:
En wp existe la opción menú , no te sirvió ?
 
pues la verdad que no se me a ocurrido, creo que estoy un poco saturado y buscando en el camino equivcado.

Como arias esto con menu?
Una pagina para cada capitulo y cada temporada seria un menu distinto?
Gracias.

- - - Actualizado - - -

alguien que me ayude ?

- - - Actualizado - - -

nadie puede ayudarme con esto?
 
Pues nada sigo igual que al principio, Nadie que se solidarice conmigo?:stupid1:
 
La verdad que aun no entiendo cual es el problema, puedes hacerlo simplemente usando categorías y subcategorías y alguna que otra etiqueta, saludos.
 
No entiendo el problema. El post type tendrá una taxonomía llamada temporadas, y cada post pertenecerá a una instancia distinta de esa taxonomía...
 
Gracias pero como puedo hacerlo así?
Quiero decir, tengo creado un post type llamado series, a este le añado la taxonomía temporada y dentro de temporada puedo añadirle las etiquetas capitulo 1,2,3... para mostrarlas en la plantilla. Pero tengo 1 problema, de esta forma, cuando entro por ejemplo dentro de capitulo 1, me muestra todos los capítulos 1 de todas las series, en vez de mostrarme contenido para ese único capitulo. A demás necesito poder añadir dentro de cada capitulo un enlace que me mande al vídeo de cada capitulo, y de esta forma creo que no podría.

Entonces, cual seria la forma correcta? no se si me explico bien.
GRACIAS.
 
Y por qué pones los capítulos como etiquetas? Según lo veo, los capítulos deberían ser posts de la categoría temporada.
 
Pues yo no lo tengo tan claro Enrique.
De la forma en que me dices, cuando yo entre en temporada 1 por ejemplo, accedería a todos los capítulos vinculados a esa temporada, pero no solo de la serie 1, por ejemplo, me daría como resultado todos los capítulos de todas las series que tengan la categoría temporada, no es así?

Lo que necesito, es que cada serie tenga su temporada, y dentro de cada temporada, sus correspondientes capítulos, entonces al yo entrar en la temporada 1 de la serie 1, me daría como resultado todos los capítulos, pero solo los de la serie 1.

De verdad que necesito ayuda con esto, son muchos días los que llevo indagando y no encuentro solución.
 
De momento lo que puedo aportar, que al parecer hay que usar un post type con estructura hierarchical.
He encontrado esto
https://www.smashingmagazine.com/2012/11/complete-guide-custom-post-types/
Pero antes de meterle mano, puede decirme alguien mas experto si esta seria la forma correcta?

- - - Actualizado - - -

Bueno perdonarme si soy pesado pero necesito hacer esto.

Lo que comentaba la pagina anterior que he pasado, es mas o menos esto

PHP:
$labels = array(
'name'                => _x( 'Episodes', 'Post Type General Name', 'text_domain' ),
'singular_name'       => _x( 'Episodes', 'Post Type Singular Name', 'text_domain' ),
'menu_name'           => __( 'Episodes', 'text_domain' ),
'parent_item_colon'   => __( 'Parent Item:', 'text_domain' ),
'all_items'           => __( 'All Episodes', 'text_domain' ),
'view_item'           => __( 'View Item', 'text_domain' ),
'add_new_item'        => __( 'Add New Item', 'text_domain' ),
'add_new'             => __( 'Add new episode', 'text_domain' ),
'edit_item'           => __( 'Edit Item', 'text_domain' ),
'update_item'         => __( 'Update Item', 'text_domain' ),
'search_items'        => __( 'Search Item', 'text_domain' ),
'not_found'           => __( 'Not found', 'text_domain' ),
'not_found_in_trash'  => __( 'Not found in Trash', 'text_domain' )
);

$rewrite = array(
'slug'                => 'episodes/%episode_cat%',
'with_front'          => false,
'pages'               => true,
'feeds'               => true
);
$args = array(
'label'               => __( 'episodes', 'text_domain' ),
'description'         => __( 'All episodes', 'text_domain' ),
'labels'              => $labels,
'supports'            => array('title' ),
'hierarchical'        => true,
'public'              => true,
'show_ui'             => true,
'show_in_menu'        => true,
'show_in_nav_menus'   => true,
'show_in_admin_bar'   => true,
'menu_position'       => 5,
'can_export'          => true,
'has_archive'         => true,
'exclude_from_search' => false,
'publicly_queryable'  => true,
'rewrite'             => $rewrite,
'capability_type'     => 'page',
'query_var'           => true,
'_builtin'            => false
);
register_post_type( 'episodes_listing', $args );

}

add_action( 'init', 'episodes', 0 );

function episodes_taxomony() {

 $labels = array(
'name'                       => _x( 'Episodes Categories', 'Taxonomy General Name', 'text_domain' ),
'singular_name'              => _x( 'Episodes', 'Taxonomy Singular Name', 'text_domain' ),
'menu_name'                  => __( 'Episode Categories', 'text_domain' ),
'all_items'                  => __( 'All Items', 'text_domain' ),
'parent_item'                => __( 'Parent Item', 'text_domain' ),
'parent_item_colon'          => __( 'Parent Item:', 'text_domain' ),
'new_item_name'              => __( 'New Item Name', 'text_domain' ),
'add_new_item'               => __( 'Add new episode', 'text_domain' ),
'edit_item'                  => __( 'Edit Item', 'text_domain' ),
'update_item'                => __( 'Update Item', 'text_domain' ),
'separate_items_with_commas' => __( 'Separate items with commas', 'text_domain' ),
'search_items'               => __( 'Search Items', 'text_domain' ),
'add_or_remove_items'        => __( 'Add or remove items', 'text_domain' ),
'choose_from_most_used'      => __( 'Choose from the most used items', 'text_domain' ),
'not_found'                  => __( 'Not Found', 'text_domain' )
);
$rewrite = array(
'slug'                       => 'episodes',
'with_front'                 => false,
'hierarchical'               => true

);
$args = array(
'labels'                     => $labels,
'hierarchical'               => true,
'public'                     => true,
'show_ui'                    => true,
'show_admin_column'          => true,
'show_in_nav_menus'          => true,
'show_tagcloud'              => true,
'query_var'                  => true,
'rewrite'                    => $rewrite
);
register_taxonomy( 'episodes_category', array('episodes_listing'), $args );

}


add_action( 'init', 'episodes_taxomony', 0 );

function filter_post_type_link($link, $post)
{ 
 if ($post->post_type != 'episodes_listing')
  return $link;

 if ($cats = get_the_terms($post->ID, 'episodes_category')) {

  $link = str_replace('%episode_cat%', array_pop($cats)->slug, $link);
  return $link;
 }
}
add_filter('post_type_link', 'filter_post_type_link', 10, 2);
?>

El problema que le veo a esto, es a la hora de controlar tantísimas entradas.
Entonces estoy pensado que la mejor manera sería hacerlo con metaboxes, creando algo así en un post type x ejemplo Series.

rect4265.webp

y así se puede añadir tantas temporadas como capítulos sean necesarios.
No se si me entienden.

El problema es que, se crear meta boxes, pero no se hacer lo que quiero.
Esto sería posible? Alguien puede ayudarme a desarrollar esto, pasarme algún enlace o de la forma que sea?

Gracias.
 
Última edición:
Hombre, si usas Temporada 1 como categoría para todas las series, pues sí, pero puedes usar las categorías de temporada para cada serie. Por ejemplo:

The Walking Dead
Categorías nombres: Temporada 1, Temporada 2
Cateogorías slug: twd-temporada-1, twd-temporada-2
URL /the-walking-dead/twd-temporada-X/capitulo-X/

Juego de Tronos
Categorías nombres: Temporada 1, Temporada 2
Categorías slug: got-temporada1, got-temporada2
URL /juego-de-tronos/got-temporada-X/capitulo-X/

Sí, a la larga salen muchas categorías, pero es una solución relativamente sencilla y rápida.
 
perdona pero no entiendo muy bien lo que me quieres decir.
Digamos que tengo que crear una taxonomía a la que se le llame como en el ejemplo, categoría nombres, bien, hay añado las temporadas. hasta aquí bien.
Pero cuando usted dice categorías slug: twd-temporada-1, twd-temporada-2, no se a que se refiere.
Cuando pone Url /the-walking-dead/twd-temporada-X/capitulo-X/. Supongo esta seria la url resultante no es asi?

Perdona mi ignorancia y gracias por ayudarme
 
Puedes poner o pasarme el enlace de algún sitio similar a lo que tu quieres? saludos.
 
Si, mira Series y pelis en streaming y descarga directa - pordede.com

Tienes que registrarte para poder entrar.

Lo que necesito es crear un sistema para organizar las temporadas y capítulos de una serie. Entonces mi idea es hacerlo con metaboxes repetibles. Ya tengo esos metaboxes creados pero me faltaría poder duplicar el codigo tantas veces sea necesario como temporadas tenga una serie.

El código que tengo para repetir los campos es este:
PHP:
<?php 
function hhs_get_sample_options() {
	$options = array (
		'Option 1' => 'option1',
		'Option 2' => 'option2',
		'Option 3' => 'option3',
		'Option 4' => 'option4',
	);
	
	return $options;
}
add_action('admin_init', 'hhs_add_meta_boxes', 1);
function hhs_add_meta_boxes() {
	add_meta_box( 'repeatable-fields', 'Repeatable Fields', 'hhs_repeatable_meta_box_display', 'serie', 'normal', 'default');
}
function hhs_repeatable_meta_box_display() {
	global $post;
	$repeatable_fields = get_post_meta($post->ID, 'repeatable_fields', true);
	$options = hhs_get_sample_options();
	wp_nonce_field( 'hhs_repeatable_meta_box_nonce', 'hhs_repeatable_meta_box_nonce' );
	?>
	<script type="text/javascript">
	jQuery(document).ready(function( $ ){
		$( '#add-row' ).on('click', function() {
			var row = $( '.empty-row.screen-reader-text' ).clone(true);
			row.removeClass( 'empty-row screen-reader-text' );
			row.insertBefore( '#repeatable-fieldset-one tbody>tr:last' );
			return false;
		});
  	
		$( '.remove-row' ).on('click', function() {
			$(this).parents('tr').remove();
			return false;
		});
	});
	</script>
  
	<table id="repeatable-fieldset-one" width="100%">
	<thead>
		<tr>
			<th width="40%">Name</th>
			<th width="12%">Select</th>
			<th width="40%">URL</th>
			<th width="8%"></th>
		</tr>
	</thead>
	<tbody>
	<?php
	
	if ( $repeatable_fields ) :
	
	foreach ( $repeatable_fields as $field ) {
	?>
	<tr>
		<td><input type="text" class="widefat" name="name[]" value="<?php if($field['name'] != '') echo esc_attr( $field['name'] ); ?>" /></td>
	
		<td>
			<select name="select[]">
			<?php foreach ( $options as $label => $value ) : ?>
			<option value="<?php echo $value; ?>"<?php selected( $field['select'], $value ); ?>><?php echo $label; ?></option>
			<?php endforeach; ?>
			</select>
		</td>
	
		<td><input type="text" class="widefat" name="url[]" value="<?php if ($field['url'] != '') echo esc_attr( $field['url'] ); else echo 'http://'; ?>" /></td>
	
		<td><a class="button remove-row" href="#">Remove</a></td>
	</tr>
	<?php
	}
	else :
	// show a blank one
	?>
	<tr>
		<td><input type="text" class="widefat" name="name[]" /></td>
	
		<td>
			<select name="select[]">
			<?php foreach ( $options as $label => $value ) : ?>
			<option value="<?php echo $value; ?>"><?php echo $label; ?></option>
			<?php endforeach; ?>
			</select>
		</td>
	
		<td><input type="text" class="widefat" name="url[]" value="http://" /></td>
	
		<td><a class="button remove-row" href="#">Remove</a></td>
	</tr>
	<?php endif; ?>
	
	<!-- empty hidden one for jQuery -->
	<tr class="empty-row screen-reader-text">
		<td><input type="text" class="widefat" name="name[]" /></td>
	
		<td>
			<select name="select[]">
			<?php foreach ( $options as $label => $value ) : ?>
			<option value="<?php echo $value; ?>"><?php echo $label; ?></option>
			<?php endforeach; ?>
			</select>
		</td>
		
		<td><input type="text" class="widefat" name="url[]" value="http://" /></td>
		  
		<td><a class="button remove-row" href="#">Remove</a></td>
	</tr>
	</tbody>
	</table>
	
	<p><a id="add-row" class="button" href="#">Add another</a></p>
	<?php
}
add_action('save_post', 'hhs_repeatable_meta_box_save');
function hhs_repeatable_meta_box_save($post_id) {
	if ( ! isset( $_POST['hhs_repeatable_meta_box_nonce'] ) ||
	! wp_verify_nonce( $_POST['hhs_repeatable_meta_box_nonce'], 'hhs_repeatable_meta_box_nonce' ) )
		return;
	
	if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
		return;
	
	if (!current_user_can('edit_post', $post_id))
		return;
	
	$old = get_post_meta($post_id, 'repeatable_fields', true);
	$new = array();
	$options = hhs_get_sample_options();
	
	$names = $_POST['name'];
	$selects = $_POST['select'];
	$urls = $_POST['url'];
	
	$count = count( $names );
	
	for ( $i = 0; $i < $count; $i++ ) {
		if ( $names[$i] != '' ) :
			$new[$i]['name'] = stripslashes( strip_tags( $names[$i] ) );
			
			if ( in_array( $selects[$i], $options ) )
				$new[$i]['select'] = $selects[$i];
			else
				$new[$i]['select'] = '';
		
			if ( $urls[$i] == 'http://' )
				$new[$i]['url'] = '';
			else
				$new[$i]['url'] = stripslashes( $urls[$i] ); // and however you want to sanitize
		endif;
	}
	if ( !empty( $new ) && $new != $old )
		update_post_meta( $post_id, 'repeatable_fields', $new );
	elseif ( empty($new) && $old )
		delete_post_meta( $post_id, 'repeatable_fields', $old );
}

?>

Lo único que necesito es añadirle un botón que me vuelva a introducir todo el código me entiende?

Algo así.
Ver el archivo adjunto 88492

- - - Actualizado - - -

Puedes poner o pasarme el enlace de algún sitio similar a lo que tu quieres? saludos.

Pudiste verlo?
 
Última edición:
No, no tengo por costumbre registrarme, en sitios que no muestran nada de contenido, si puedes ponerme otro ejemplo que no sea obligatorio registrarse, saludos.

Bueno es una paginas de películas, tiene mucha publicidad pero entro muy frecuentemente, del estilo a seriesyonki.

Bueno en esta que pusieron por aquí hace poco tmb puedes verlo.
You are being redirected...
No es mas que poder organizar las series con sus correspondientes temporadas y asignarle a cada temporada los capítulos que necesite.
 
Para mostrar la información como en la pagina que citas, puedes usar algun plugins como este Shortcodes Ultimate saludos.
 
Categoria nombre de la serie
Subcategoria nombre serie + numero temporada
Post individual con nombre de capitulo y numero
Etiquetas con generos

Así puede ser?
 
Atrás
Arriba