Como crear con WordPress una Knowledge Base

Wordpress

Vale se que realmente debería poner Base de Conocimiento en vez de Knowledge Base pero queda tan cutre en español…. jaja

Resulta que estaba pensando en crearme una Knowledge Base para guardar pequeñas cosas de programación (symfony2 sobre todo) que me ahorren tiempo cuando lo quiera buscar. No pretendo extenderme demasiado en cada artículo es simplemente un pequeño recordatorio o notas sobre como se usan funciones, como declarar no se que, etc.

Los plugins que he visto por la red no me convencían para nada así que encontré un pequeño tutorial en tutsplus. Iré escribiendo más o menos lo que voy haciendo por tenerlo en español :)

Para crearlo se usarán custom  post typescustom taxonomies.

Lo primero que tenemos que hacer es crearlos en el fichero functions.php de nuestro theme.

Importante saber que si cambiamos el theme esto dejará de funcionar a menos que copiemos las funciones que hagamos en dicho functions.php

Como se puede ver en la documentación deberemos usar las funciones register_post_type y register_taxonomy para poder crear nuestros custom types y custom taxonomies. Con add_action hacemos que se ejecute nuestra función con ambos métodos en, nuestro caso, init. Esto será después de que wordpress termine de cargarse pero antes de lanzar las cabeceras.

Con wp_rewrite->rules creamos las nuevas rutas de los permanlinks.

Si se está usando el framework de Bones como yo habŕa que
include_once(‘library/custom-post-type.php’);porque sino no funciona cuando reescribimos las reglas de routing. (tampoco me he preocupado a mirar porqué solo se que con ella no entraba a la función kb_rewrite_rules)

He estado mirando la documentación de creación y está bien explicado cada argumento usado y los que no se usan en este caso por lo que no creo que haga falta que explique que hace cada uno.

Según el valor de hierarchical tenemos que los artículos no tendrán herencia pero las secciones sí. Es decir todos los artículos estarán al mismo nivel y las secciones podrán estar anidadas.

Con esto lo que hacemos es añadir una columna al listado de artículos de tal forma que podamos ver las secciones a la que pertenece y que cada término tenga un enlace para filtrar los artículos por dicha sección.

 

Ahora crearemos un par de funciones, una nos mostrará las secciones disponibles y otra nos dirá cual es la sección que está activa en ese momento.

Esto nos creará una lista que usaremos en la barra lateral. Podemos modificar este código para añadir clases o ids a las etiquetas html que se generarán para posteriormente modificar su estilo,

En nuestro directorio del theme creamos un archivo llamado sidebar-sections.php donde llamaremos ala función.

Y ahora podemos añadir en la parte que queramos de nuestra plantilla esta sidebar simplemente con

Como ultima modificación en functions.php añadiremos

Este método es necesario porque un artículo puede tener múltiples secciones y todas aparecerán en el permalink separadas por / antes del slug del artículo.

Y ahora lo que tenemos que hacer es crear las plantillas  que usaremos para mostrar la información de nuestra knowledge base.

Primero un listado para mostrar todos los permanlinks de los artículos de nuestra base.

Ahora la plantilla de cada artículo divida en dos partes, la primera es el diseño general y la segunda la parte de código que se incluirá en el primero con get_template_part.

Y finalmente la plantilla para listar los artículos por cada sección

Evidentemente estas plantillas son demasiados básicas para poder usar así solas y habría que editarlas para darles el diseño que queramos darles.

 Yo he tenido algún problema con el rewrite de la regla, pues no se me ejecutaba el método y me salía error en los listados y artículos, para ello lo que hice fue añadir al archivo functions

Y después de que ya me funcionase en mi web lo borre del archivo functios.php

 

Fuente: http://wp.tutsplus.com/tutorials/business/wordpress-as-a-knowledge-base/

 

Si queremos en la lista de secciones también nos aparezcan los artículos que hay en cada una de las subsecciones entonces podemos modificar la función kb_sections como sugieren en esta página:

http://www.bentedder.com/create-a-custom-taxonomy-menu-in-wordpress/

 

 

Deja un comentario

  • (will not be published)


1 + 1 =