Buenas gente, tanto tiempo sin pasarme por acá.
Cita: Sin embargo, existe lo que personalmente llamo "uso semántico" de los recursos del software. Esto nos permite echar mano de la herramienta indicada a la hora de un desarrollo. Es decir, si usamos categorías para otra función que no sea categorizar, posiblemente nos veamos en medio de un lío a posteriori cuando -por ejemplo- intentemos escalar la estructura de contenido.
Lo veo de otra manera. ¿Y si en vez de categorías usaras taxonomías personalizadas? Es decir, yo suelo usar una CT llamada, digamos, "Ubicación en portada". En ella puedo tener los términos Slider, Grandes, Chicas y Titulares (y agregale, si querés, Oculta.. pero no es necesario ya que Oculta es lo mismo que no tenga ningún término asociado [y al final del post queda en evidencia del por qué hasta sería
perjudicial]).
Cita:
Iniciado por Codex;http://codex.wordpress.org/Taxonomies What is a taxonomy?
[...] Basically, a taxonomy is a way to group things together.
Con esto estoy
organizando qué ingresa al grupo "portada", qué no, y dentro de lo que ingresa a qué "subgrupo" pertenece.
Luego para mostrarlas:
Código:
<?php
$args = array(
showposts => -1,
orderby => 'menu_order',
order => 'ASC',
'tax_query' => array(
array(
'taxonomy' => 'ubicacion',
'field' => 'slug',
'terms' => 'Rotativas'
)
)
);
$rotativas = new WP_Query($args);
while ($rotativas->have_posts()) : $rotativas->the_post();
?>
<!-- acá tu código -->
<?php endwhile; ?>
... y así para cada término o ubicación en la portada.
Con respecto al método que comentás,
meta, para mostrar o no una noticia... éste:
Código:
if(get_post_meta($post->ID , 'mostrar home' , true) == 1) {
// ...
}
... me parece errado. Porque vos estás recuperando TODAS las noticias (con todas me refiero a las marcadas como "Agregar" y "Ocultar") y dejándole al if el trabajo de mostarlas o no. Se que el ejemplo que voy a poner no es el mejor; pero es el primero que me viene a la cabeza y no es nada más que un ejemplo: ¿Qué ocurriría si tenés una portada paginada de 5 en 5 entradas y las primeras 6 están marcadas como "Ocultar" y las siguients 4 como "Mostrar"? En la primer página no verías ninguna y en la segunda sólo 4. Deberías hacer un WP_Query tal que así:
Código:
$query = new WP_Query( array( 'meta_key' => 'mostrar home', 'meta_value' => '1' ) );
Y mientras escribo esto me estoy dando cuenta que en tu función guardar_home_metabox() lo ideal sería hacer un update_post_meta() si $_POST['home_metabox_opciones'] es 1. De ser cero su valor, pues un delete_post_meta() y así no tenés miles de registros con valor cero, uno por cada noticia que no esté en la portada que, a lo largo del tiempo, tienden a ser infinitas
Me gustaría saber qué opinás de esto.
Abrazo.