Siempre se comentó que la desventaja de WordPress era tener los trackbacks junto a los comentarios. Eso, por mi parte, no me molesta; pero siempre pensé hacer algo para poder diferenciar los trackbacks y pingbacks a simple vista de los comentarios en WordPress, y siempre por una cosa u otra lo postergaba. Al final no resultó tan dificil.
A continuación voy a intentar explicarles como lo hice. Pongamos manos a la obra:
Si ustedes se ponen a ver como WP guarda los trackbacks y los pingbacks, verán que son simples comentarios con un identificador en el cuerpo del mensaje: los trackcbacks comienzan con una etiqueta <trackback /> y los pingbacks con el identificador <pingback /> por lo demás, son exactamente iguales a los comentarios comunes.
Lo que hice fue identificar esos trackbacks mediante la funcion strpos() de PHP y luego encierro todo el cuerpo restante del mensaje en etiquetas <divs> identificadas con la clase “trackback” o “pingback” dependiendo cual sea. Todo esto en el archivo template-functions-comment.php dentro de la carpeta wp-includes.
Veamos esto que acabo de explicar ya metiendo mano en el código:
Esta es la función original que se encuentra en el archivo de WordPress ya mensionado aproximadamente en la línea 172. Originalmente podrán ver que no hace mas que quitarle el identificador y aplicarle el filtro que ya trae el WP:
function comment_text() {
global $comment;
$comment_text = str_replace('<trackback />', '', $comment->comment_content);
$comment_text = str_replace('<pingback />', '', $comment_text);
echo apply_filters('comment_text', $comment_text);
}
Ahora la tarea es identficar cada uno y agregarle las etiquetas correspondientes. Para lograr esto tendrán que reemplazar esta función completa, por esta otra que identifica cuales son los trackbacks y pingbacks y los encierra en las etiquetas que deseen (yo elegi bloques divs).
function comment_text()
{
global $comment;
if (preg_match('|<trackback />|', $comment->comment_content))
{
$comment_text = str_replace('<trackback />', '', apply_filters('comment_text',$comment->comment_content));
$comment_text = "<div class="trackback">".$comment_text."</div>";
}
elseif (preg_match('|<pingback />|', $comment->comment_content))
{
$comment_text = str_replace('<pingback />', '', apply_filters('comment_text', $comment->comment_content));
$comment_text = "<div class="pingback">".$comment_text."</div>";
}
else
{
$comment_text = apply_filters('comment_text', $comment->comment_content);
}
echo $comment_text;
}
Para resumir: Reemplazando la primera funcion por la segunda, los trackbacks y pingbacks se encerraran en etiquetas divs identificadas con la clase correspondiente para poder aplicarle los estilos necesarios.
Como WP parsea algunos caracteres y los reemplaza por otros, voy a dejar el txt de este mismo tutorial en este link.
BTW: Se admiten sugerencias.









14 Comentarios
Taly OnLine » Dando crédito
febrero 7th, 2005 at 1:19 am
[...] rar no se pueden (o al menos yo no se como) pero los pude distinguir uno de otros gracias a un tip que vi en el blog de Lucas. Asi que ahora quedó asi. Segundo: hace mil que quiero p [...]
Osvaldo
enero 19th, 2005 at 6:02 am
Muy bueno che!! ma que digo muy bueno!! EXCELENTE!! :P ahora lo pongo en practica!
Lucas
enero 19th, 2005 at 10:20 am
Si, siempre se dijo que una de las desventajas de WP era tener los trackbacks con los comments; a mi no me molesta, pero esta interesante que al menos se los identifique a simple vista.
naty
enero 19th, 2005 at 2:51 pm
Guenassss, aca hay alguien que me trato de señora y venia a reclamar mas respeto, ja, ja, ja;);););)…..Evidentemente estoy hecha mierda!!, :(:(:(
Besos
JEL
enero 19th, 2005 at 3:02 pm
Excelente. Ahora, la duda es:
Vos elegiste div’s. Si yo elijo simplemente texto, tal y como se muestra ahora en mi weblog… ¿qué hacer?
¿Un txt a medida de esa necesidad, y al que se le pueda aplicar .css, please? =)
Lucas
enero 19th, 2005 at 3:44 pm
Naty: quién te haya tratado de señora, lo agarramos entre todos y lo ponemos a hacer las pizas mientras nosotros brindamos con cerveza.
JEL: Lo que hace ese script es agregar a todo el comentario del trackback o pingback etiquetas html para que vos despues le pongas un estilo desde el css.
Por ejemplo:
Entonces en el css a la clase “tb” le agregas los estilos que quieras y a partir de ahi todos tus trackbacks estarán resaltados con el estilo que vos hayas elegido.
Por ejemplo:
Espero haber sido claro.
JEL
enero 20th, 2005 at 11:37 am
Sí, se entendió a la perfección.
Ya te ganaste un lugar entre mis enlaces. Y en breve haré un post sobre tu solución. =D
naty
enero 21st, 2005 at 2:44 pm
Sip , sip hagamos eso……yo llevo las cervezas te parece??????, que lindooooooooo!!!!
Ariel Vercelli
enero 21st, 2005 at 9:14 pm
Muy bueno el aporte Lucas. Muchas gracias!
mariano
enero 24th, 2005 at 5:59 pm
muchas gracias.. estaba buscando esto hace un tiempo :)
Taly OnLine
febrero 7th, 2005 at 10:54 am
Dando crédito
Ya está un poco hartante esto de tanto hablar del blog, pero por ahí a alguno le sirve…
Hice un par de cambios en la CSS y vengo a dar los créditos correspondientes.
Primero: hace mil que quiero ponerle sombras a las imagenes, pero la vez q…
m^r(oS
marzo 2nd, 2005 at 1:20 am
Mi problema no es en realidad separarlos, sino que me gustaria poder contarlos… Es decir contar comments por un lado y tb/pbacks por el otro.
Por ejemplo: Trackback [8] – Comments [15] (es decir que el total sea 23, no que de lso 15 comments 8 sean tbs). Any idea?
Espero haberme expresado bien ;p
Jackblack
junio 11th, 2005 at 5:09 am
Solo una cosa, que soy nuevo en esto. La plantilla que uso para mi blog no venía con enlace para el URI del trackback. ¿Qué codigo tengo que añadir a la plantilla para que se muestre?
Gracias anticipadas por vuestra ayuda.
Jackblack
junio 11th, 2005 at 6:18 am
Problema solucionado,gracias.