A lo largo de esta serie de seis partes para principiantes a maestros, usaremos las funciones avanzadas de WordPress para crear nuestro propio portafolio y blog, completo con una página de opciones, múltiples estilos y soporte para las nuevas funciones de WordPress 2.7. Hoy trataremos con los comentarios, la búsqueda y el archivo..
Esta parte se trata principalmente de arreglar las piezas adicionales que aún no tenemos. En la primera sección, creamos la plantilla de Comentarios, con soporte para las nuevas funciones en WP 2.7, y al mismo tiempo acomodamos las versiones anteriores..
En la segunda sección, creamos el archivo y las plantillas de búsqueda..
WordPress 2.7 introdujo varias características nuevas para la sección de comentarios, incluyendo Comentarios enlazados, comentarios paginados, estilos alternos y código simplificado. Sin embargo, estas funciones no funcionarán correctamente en versiones anteriores de WordPress. Para combatir esto, usaremos un filtro de WordPress para que las versiones anteriores utilicen un archivo de comentarios y las versiones más nuevas para otro..
Agregue el siguiente código al final de funciones.php
:
// Si usa 2.6 o una versión inferior, use los comentarios heredados para mostrar add_filter ('comments_template', 'legacy_comments'); function legacy_comments ($ file) if (! function_exists ('wp_list_comments')) $ file = TEMPLATEPATH. '/comments.legacy.php'; devuelve $ archivo;
los wp_list_comments ()
La función es una nueva adición a WordPress 2.7; por lo que estamos comprobando si existe utilizando el exista función ()
Función de PHP Si no lo hace, se agrega un filtro de WordPress para redirigir a la comments.legacy.php
Archivo cuando se solicita la plantilla de comentarios..
Todas las nuevas versiones de WordPress continuarán usando comentarios.php
(ya que contienen la wp_list_comments ()
función.)
Crear un nuevo archivo llamado comentarios.php
. En el interior, comience con:
Si la publicación actual tiene comentarios asignados, el número de comentarios se genera en una etiqueta de título utilizando la comments_number ()
función. Los comentarios se muestran en una lista ordenada usando el nuevo wp_list_comments ()
función.
Cada comentario se mostrará usando una plantilla incorporada que es fácil de estilizar de varias maneras. Sin embargo, si necesita más control sobre el aspecto de cada comentario, consulte esta página en el Códice de WordPress..
Las etiquetas de navegación de comentarios también son nuevas en la versión 2.7 y permiten la "paginación" entre un número determinado de comentarios (al igual que tienes entre las publicaciones del blog).
En el siguiente código, se muestra un mensaje si los comentarios están cerrados para la publicación:
comment_status): // Si los comentarios están abiertos, pero no hay comentarios. else: echo "Los comentarios están cerrados en esta publicación..
"; endif; endif;?>
La siguiente tarea es mostrar el formulario de comentario real:
comment_status):?>Debes ser /wp-login.php?redirect_to="> inicie sesión para publicar un comentario.
Si los comentarios se configuran para abrirse, se muestra el título 'Dejar una respuesta' con el nuevo
comment_form_title ()
función. Si el usuario está respondiendo a un comentario, el% s
en 'Dejar una respuesta a% s' se reemplaza con el nombre del autor del comentario al que responden.
También se muestra un enlace de cancelación de respuesta si se trata de una respuesta usandocancel_comment_reply_link ()
.
Finalmente, si solo los usuarios que han iniciado sesión pueden comentar (y el usuario no ha iniciado sesión), se muestra un mensaje de error que apunta a la página de inicio de sesión.Si no es necesario registrarse (o si el usuario está conectado):
comment_id_fields ()
genera el ID de la publicación actual en un campo oculto. En WP 2.6, tenías que hacer esto manualmente, pero ahora se requiere usar esta función.
En el panel, vaya a Configuración -> Discusión y marque las opciones 'Habilitar comentarios en cadena' y 'Romper comentarios en páginas'. Luego, obtenga una vista previa de la plantilla de comentarios yendo a cualquier publicación del blog:
añadir style.css
:
/ * Comentarios * / h4 # comments clear: both; margen: 45px 0 5px 0; .commentlist li font-size: inherit; .commentlist li .avatar float: derecha; .commentlist cite font-weight: bold; estilo de letra: normal; tamaño de letra: 0.95em; .commentlist p font-size: 0.8em; fuente-peso: normal; altura de la línea: 1.5em; margen: 10px 5px 10px 0; transformación de texto: ninguna; .commentmetadata display: block; tamaño de letra: 0.8em; fuente-peso: normal; altura de la línea: 1.1em; margen: 0; .commentlist .reply font-size: 0.8em; font-weight: negrita; .commentlist margen: 0 0 20px 0; .commentlist li margen: 15px 0 10px; relleno: 10px; estilo de lista: ninguno; .commentlist li ul li margen derecho: -5px; margen izquierdo: 10px; .comms-navigation, .navigation borrar: ambos; bloqueo de pantalla; margen inferior: 20px; desbordamiento: oculto; .children relleno: 0; .nocomments text-align: center; margen: 0; relleno: 0; / * Formulario de comentarios * / # responde h4 borrar: ambos; margen: 45px 0 10px 0; form p padding-bottom: 10px; margen: 5px 0; form p label display: inline-block; margen derecho: 10px; text-align: right; ancho: 5em; form p label [for = "comment"] vertical-align: top; input, textarea padding: 3px; textarea font-family: Arial, Helvetica, sans-serif; tamaño de letra: 0.9em; desbordamiento: auto; entrada # submit padding: 5px 3px;
Y lo siguiente en deepblue.css
:
/ * Lista de comentarios * / .commentlist li .avatar border: 2px solid # f2e9ea; .commentlist cita a: enlace, .commentlist cita a: visitó color: # 333; .commentlist .commentmetadata a: link: first-child, .commentlist .commentmetadata a: visited: first-child color: # 333; .thread-alt background-color: # F6F6EC; .thread-even background-color: # F9F9F3; .depth-1 border: 1px solid # E8E3C8; .even, .alt border-left: 1px solid # E8E3C8; input, textarea background-color: # F6F6EC; borde: 1px sólido # E8E3C8; input: focus, textarea: focus border: 1px solid # dad4b6;
Tenga en cuenta que 2.7 agrega automáticamente nombres de clase especiales como alt
, incluso
, niños
, por el autor
, thread-alt
, hilo uniforme
donde sea necesario para permitir un estilo diferente en cada comentario del otro color para aumentar la legibilidad en hilos largos. Ver el Codex de WordPress para más información sobre esto..
Dentro header.php
, directamente antes insertar:
Esto carga un archivo Javascript incorporado que puede "mover" el formulario de comentarios al hacer clic en un enlace de Respuesta, por lo que la página no necesita recargarse:
Haga clic en 'Responder' y el formulario se moverá a su posición actual:
No voy a explicar nada de este código, ya que está desactualizado y solo se incluye para las pocas personas que no usan WP 2.7. Pero he añadido en una $ contador
por lo tanto, los comentarios alternativos pueden tener un estilo diferente, ya que están en 2.7.
Crear un nuevo archivo llamado comments.legacy.php
y copia en el siguiente código. Si está utilizando WP 2.6, el diseño será exactamente el mismo que en 2.7 si los comentarios de subprocesos están deshabilitados.
post_password)) // si hay una contraseña if ($ _COOKIE ['wp-postpass_'. COOKIEHASH]! = $ post-> post_password) // y no coincide con la cookie?>Esta publicación está protegida por contraseña. Introduzca la contraseña para ver los comentarios..
comment_status):?>
dice:#comentario-">comment_approved == '0'): echo 'Tu comentario está esperando ser moderado.'; terminara si; ?>los comentarios están cerrados.
comment_status):?>Deja una respuesta
Debes ser /wp-login.php?redirect_to="> inicie sesión para publicar un comentario.
Descargue los archivos de origen para esta publicación si desea que este archivo esté correctamente espaciado y formateado para facilitar su edición..
Nota: Si desea obtener más información sobre el antiguo bucle de comentarios, consulte "Desentrañar los secretos del archivo de comentarios de WordPress 'por Gilles Maes.
los archive.php
La plantilla se utiliza para mostrar cualquier tipo de archivo para el blog, por ejemplo, categorías, meses, etiquetas etc.
Crear un nuevo archivo llamado archive.php
y comienza con lo siguiente:
'; ?>
Como puede ver, si el archivo es para la categoría Cartera, la página cargará page-portfolio.php
modelo. salida;
asegura que no se ejecute más código después de esa línea si se usa la plantilla de cartera.
Siguiente:
Archivo para el ‘’Categoría
Posts etiquetados '’
Archivo para
Archivo para
Archivo para
archivo de autor
archivos del blog
Cada sección mostrará un título ligeramente diferente dependiendo de para qué sirve el archivo. Por ejemplo, si se trata de un archivo de la categoría 'General', el título diría "Archivo de la categoría 'General'"; o un archivo mensual para enero de 2009 sería "Archivo para enero de 2008".
En la última línea, se abre el bucle..
Siguiente:
"title =" Continue Reading """>
- #comentarios ">
El código anterior es el código normal para una publicación de blog (como lo hemos usado varias veces en la página del blog, páginas individuales, etc.) En la última línea, el ciclo está cerrado.
Si el archivo no existe:# El archivo no existe: else: get_header (); ?>Extraviado
Se muestra un simple encabezado 'No encontrado', y el
searchform.php
Se incluye el archivo (que crearemos a continuación). Probablemente debería incluir más información en esta página para que sea más fácil de usar..Finalmente, incluya los enlaces de paginación, la barra lateral y el pie de página:
Ahora pruebe su página de archivo haciendo clic en uno de los enlaces en los widgets de Categoría / Archivos / Etiquetas. Pero si va a un archivo que no existe (p. Ej., Una identificación de categoría que no existe), será recibido con la siguiente página de error porque
searchform.php
el archivo no existe.
Formulario de búsqueda
Este archivo realmente no podría ser más simple, solo un formulario de búsqueda. Agregue lo siguiente en un nuevo archivo llamado
searchform.php
:Intente ir a un archivo inexistente nuevamente, y aparecerá el formulario de búsqueda. Utiliza el mismo estilo que usamos en el formulario de búsqueda de la barra lateral, por lo que no se requiere un estilo adicional.
Página de resultados de búsqueda
El archivo de plantilla final requerido es
search.php
que muestra los resultados de una búsqueda. En su mayor parte, este es un bucle ordinario, sin embargo, como los elementos de la Cartera pueden aparecer en los resultados, deben mostrarse de forma diferente a las publicaciones del blog..
Crear el
search.php
Archivo y comenzar con lo siguiente:Resultados de la búsqueda
El bucle se abre, y luego es un
Si
Declaración para mostrar un elemento de la cartera:ID, 'vista previa', verdadero); $ date = get_post_meta ($ post-> ID, 'date', true); $ client = get_post_meta ($ post-> ID, 'client', true); $ link = get_post_meta ($ post-> ID, 'link', true); ?>">"> ($ fecha)";?>
Si la publicación recuperada pertenece a la categoría de cartera, la publicación se mostrará con el diseño anterior, para que aparezca igual que los elementos de la cartera. De otra manera…
"title =" Continue Reading """>
- #comentarios ">
Se utiliza el diseño normal de la publicación del blog..
Finalmente, se muestra un mensaje de error con un formulario de búsqueda si no se devolvieron resultados, se usaron las etiquetas de paginación y se incluyeron los archivos de la barra lateral y el pie de página:No se han encontrado publicaciones. Intenta una búsqueda diferente?
Solo agrega el siguiente CSS en
style.css
y hemos terminado aquí:.búsqueda de trabajo claro: ambos; margen: 0 0 45px 0; relleno: 0 0 40px 0; ancho: 690px;
Resumen
Mañana es el último día de la serie. (Parte 6) Estaremos solucionando algunos errores con el diablo (IE6), y terminaremos la serie creando el RedSpace esquema de color para la innovación!!