Ver Mensaje Individual
  #23 (permalink)  
Antiguo 15/06/2012, 15:55
Avatar de metacortex
metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: Seleccionar cuál entrada irá en página principal y cuál no. ¿Cómo?

Cita:
Iniciado por AlZuwaga Ver Mensaje
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.
100% de acuerdo contigo, tanto en preparar previamente la consulta como en eliminar el registro para valores de "0". Aunque pensándolo bien -y complementando lo que comentas sobre esta parte- mejor aún si asignamos "1" a las entradas afectadas (las que no aparecerán), mientras que para las que sí aparecen simplemente no crear ningún registro. Buena esa.

Cita:
Iniciado por AlZuwaga Ver Mensaje
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;[url
http://codex.wordpress.org/Taxonomies][/url]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.
Mi respuesta a esto es la misma que le dije a zanguanga: si consideras válido el método, pues adelante campeón, éste es un mundo libre y el cariño es el mismo. Sólo recordar que:

- Cuando desarrollemos sistemas adoptemos cierta visión a futuro y formulémonos preguntas como: "¿Existe la posibilidad de que este proyecto escale a algo mayor a mediano plazo?" y "Cuando llegue ese momento ¿los programadores (o yo mismo) podrán codificar a partir de mi código, o será necesario desbaratar/reconstruir todo?".

- No importa si desarrollamos un blog personal, portal de alto tráfico o la API de un servicio web. Nuestro método debe ser integralmente correcto desde el principio. Puede que asignarle otro rol a las taxonomías aguante su buen tiempo sin problemas, pero luego qué?, la libertad al uso: 1) podemos elegir entre realizar una buena planificación previa de procedimientos, o 2) posteriormente lidiar con un posible Kraken de 10.000 artículos, una vez que nos hayamos percatado que debimos usar la herramienta correcta desde el primer momento, pues 6 meses más tarde los nuevos requerimientos lo exigen (Aquí es donde cabe un "¡Plop!" a lo Condorito).

- WordPress es mucho más que una mera librería de funciones; que cada etiqueta, hook, función o parámetro tiene su objetivo propio. Observando este principio nos portaremos bien con el software y, en clara respuesta, el software y nuestro propio código se portarán bien con nosotros a corto, mediano y largo plazo. Además, desde que decidí ser bueno con WordPress me ha ido muy bien, el lumbago desapareció, me salieron músculos y crecí 3 centímetros.

- Respecto a las taxonomías (predeterminadas, personalizadas, grandes, chiquitas, peladas o peludas) están orientadas a un uso específico de clasificación. Veo que utilizas la palabra "organizar" para justificar su uso y no puedo dejar de mencionar que -y esto va con el respeto de siempre- estás empleando un término algo ambiguo, pues "organizar" engloba más acciones que el simple ordenamiento. Cuando hablamos de entradas que deseamos ocultar del home, ciertamente estamos organizando la estructura de contenido, pero no la estamos clasificando, y "clasificar" sí es sinónimo literal de "taxonomizar". Mi propuesta es simple: Las taxonomías son para taxonomizar. A primera vista podrá parecer un enfoque cerrado, pero hasta la fecha me he tropezado con suficientes problemas, cuellos de botella, reescritura innecesaria de código y demás concomitante parafernálica, debido al hecho de no emplear la herramienta adecuada a la situación en proceso.

Saludos.