¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. WordPress
  3. WordPress y PHP
Extrait - WordPress Desarrolle con PHP - extensiones, widgets y temas avanzados (teoría, TP, recursos) (2ª edición)
Extractos del libro
WordPress Desarrolle con PHP - extensiones, widgets y temas avanzados (teoría, TP, recursos) (2ª edición) Volver a la página de compra del libro

WordPress y PHP

Introducción

WordPress es un CMS diseñado íntegramente en PHP que es un lenguaje orientado a objetos. Por lo tanto, es normal que WordPress haya desarrollado sus propias APIs, clases, métodos, funciones, etc. para simplificar la vida de los desarrolladores. Eso implica que como desarrollador, deberá familiarizarse con el funcionamiento de WordPress para poder aprovechar todo su potencial.

Este capítulo describe la preponderancia de PHP en WordPress, la estructura y funciones recurrentes de WordPress. Sirve como referencia para todo el libro. Si lo desea, puede omitirlo y consultarlo más adelante cuando personalice el archivo functions.php, cree temas avanzados o cuando cree extensiones, etc.

Este capítulo es un resumen de las posibilidades que ofrece WordPress. Se centra en lo esencial, así que no dude en consultar la documentación oficial, el códex o los numerosos tutoriales gratuitos disponibles en la Web, para profundizar en sus conocimientos sobre un tema específico.

Todas las palabras clave y términos técnicos de cada capítulo le permiten realizar su propia investigación en la Red. Con una comunidad muy activa, sería una pena no aprovechar la experiencia de todas estas personas, dispuestas a ayudarle de forma gratuita. Encontrará muchos recursos, con muchos ejemplos de código.

La estructura de los archivos y carpetas WordPress

Es importante saber cómo se organizan los archivos en WordPress. La estructura es siempre la misma, tanto para un sitio web pequeño o para uno de mayor tamaño: el núcleo o corazón de WordPress no cambia.

1. Los archivos y carpetas en la raíz del sitio web

Todos los sitios de WordPress tienen la misma estructura. En la raíz, encontrará las carpetas wp-admin, wp-content, wp-includes y los archivos de WordPress.

images/301.png

Archivos y carpetas en la raíz del sitio web WordPress

No debe modificar o eliminar ningún archivo o carpeta nativo de WordPress. En el caso de aquellos que forman parte del core, es posible que el sitio web deje de funcionar. Además, la actualización de WordPress sobrescribe todos los cambios.

La carpeta wp-admin contiene todos los archivos relacionados con la administración del sitio web. No debe modificar archivos de esta carpeta.

La carpeta wp-content contiene todos los archivos por temas, extensiones y medios, idiomas, etc. En esta carpeta es donde se realizan las principales modificaciones y personalizaciones del sitio web.

La carpeta wp-includes contiene todos los archivos principales de WordPress (clases, funciones, scripts, etc.). No debe editar archivos de esta carpeta.

El archivo wp-config.php es un archivo generado durante la instalación de WordPress, a partir del archivo wp-config-sample.php. La información...

La base de datos WordPress

WordPress instala doce tablas en la base de datos. Para ver esto, conéctese a su base de datos. Aquí es donde se almacena toda la información sobre su sitio (contenido de artículos, páginas, categorías, etiquetas, configuración de WordPress, complementos, temas, información sobre los usuarios, etc.).

En este libro, los ejemplos se ilustran con el prefijo msw_ (por defecto, WordPress usa el prefijo wp_). Normalmente, el prefijo se elige durante la instalación, por lo que podría ser diferente si lo cambia por razones de seguridad. Recuerde cambiar el prefijo cuando utilice los ejemplos.

images/03pagina_5.png

Tablas en la base de datos durante la instalación de WordPress, en phpMyAdmin

Hay otras tablas que aparecen según los temas, extensiones y el uso del modo multisitio.

Aquí están las tablas nativas de WordPress, con el prefijo base wp:

  • La tabla wp_commentmeta contiene información adicional sobre los comentarios. La utiliza la extensión Akismet. Se ha convertido en una extensión nativa de WordPress, imprescindible para evitar el spam. La encontrará en la administración en la pestaña Plugins y para la configuración, en la pestaña Ajustes - Akismet Anti-Spam.

  • La tabla wp_comments contiene todos los comentarios de los artículos...

La estructura y los archivos principales de un tema

Al instalar WordPress, hay tres temas presentes en el directorio wp-content/themes: Twenty Twenty, Twenty Nineteen, Twenty Seventeen, que son temas predeterminados desarrollados por WordPress.

Todos los temas tienen una estructura común que consta de archivos y carpetas principales, que están presentes en la mayoría de los temas. Se denominan archivos de plantilla o plantillas de página.

images/03EI01new.png

Archivos que componen los tres temas predeterminados de WordPress: Twenty Twenty, Twenty Nineteen, Twenty Seventeen

1. Los archivos principales

Aquí están los archivos en la raíz de los temas de WordPress. Analicemos el tema Twenty Seventeen:

  • Un archivo imagen screenshot.png: este archivo sirve como miniatura para el tema. WordPress detecta automáticamente la imagen y la muestra en la sección Apariencia - Temas de la administración.

  • El archivo style.css: este es el archivo CSS genérico para la mayoría de los temas. En algunos temas, el CSS está en una carpeta específica, a menudo una carpeta css. El archivo style.css está casi vacío, excepto por el encabezado.

    El encabezado es importante, sus parámetros dan información sobre el tema. Esta información se muestra en la parte Apariencia - Temas - Detalles del tema, en la administración. Por ejemplo, el nombre del tema, la versión, la URL de descarga, el autor, la descripción, la licencia, etc.

    A continuación, se muestra un ejemplo del encabezado del archivo style.css del tema Twenty Sixteen:

/* 
Theme Name: Twenty Seventeen 
Theme URI: https://wordpress.org/themes/twentyseventeen/ 
Author: the WordPress team 
Author URI: https://wordpress.org/ 
Description: Twenty Seventeen brings your site to life with header video 
and immersive featured images. With a focus on business sites, it features 
multiple sections on the front page as well as widgets, navigation and 
social menus, a logo, and more. Personalize its asymmetrical grid with a 
custom color scheme and showcase your multimedia content with post formats. 
Our default theme for 2017 works great in many languages, for any abilities, 
and on any device. 
Version: 2.2 
Requires at least: 4.7 
Requires PHP:...

Las funciones de inclusión

En temas más antiguos, WordPress usaba las funciones include() propias de PHP para llamar a otro archivo.

<?php include(TEMPLATEPATH."/mi-archivo.php"); ?> 

En los temas actuales, WordPress utiliza sus propias funciones de inclusión:

  • get_header(): para llamar al archivo header.php.

  • get_footer(): para llamar al archivo footer.php.

  • get_sidebar(): para llamar al archivo sidebar.php.

  • get_searchform(): para llamar al archivo searchform.php.

  • comments_template(): para llamar al archivo comments.php.

  • get_template_part(’slug’): para llamar al archivo slug.php.

  • get_template_part(’slug’,’nombre’): para llamar al archivo slug-nombre.php. 

Ejemplos

<?php get_searchform(); ?> 

La función get_searchform() llama al archivo searchform.php y muestra el formulario de búsqueda.

<?php get_template_part( 'template-parts/page/content', 'page' ); ?> 

La función get_template_part() del archivo page.php llama al archivo template-parts/page/content-page.php.

Según los temas y uso de los formatos, en algunos temas, como por ejemplo Twenty Seventeen, en el archivo single.php puede ver la siguiente función:

<?php get_template_part( 'template-parts/post/content', 
get_post_format() );?> 

La función get-template_part() llama al archivo content-nombredelformato.php si los formatos se utilizan durante la edición...

Los marcadores condicionales

Los marcadores condicionales, como en cualquier lenguaje de programación, le permiten realizar acciones en casos especiales.

Las condiciones en WordPress son las mismas que en PHP: if, elseif, else, endif.

Están redactadas de dos formas, siendo la segunda la más frecuente en WordPress:

if(mi_condicion){ 
}elseif(mi_condicion){ 
}else{ 
} 

o:

if(mi_condicion): 
elseif(mi_condicion): 
else: 
endif; 

Hay funciones condicionales específicas de WordPress que devuelven true o false. Están directamente relacionadas con el tipo de archivo PHP (plantilla de página), que se mostrará en el navegador.

Por ejemplo, is_home() comprueba que está en la página de inicio del blog (lista de todas las publicaciones), que coincide con el archivo de visualización index.php o archive.php.

A continuación se muestran algunas funciones:

  • is_home(): indica si está en la página de la lista de publicaciones del blog. Esta podría ser la página de inicio predeterminada de WordPress que muestra la lista cronológica inversa de publicaciones del blog u otra página, si ha movido la lista de publicaciones a otra página usando la pestaña Ajustes - Lectura en la administración. Esto se corresponde con el archivo index.php o frontpage.php.

  • is_frontpage(): indica si está en la página de inicio del sitio(independientemente del contenido que se muestre), si es una página de inicio estática o una lista de artículos del blog. Esto se corresponde con el archivo index.php o frontpage.php.

    Atención: en este...

El bucle y sus funciones

El bucle de WordPress es un bucle while() propio de PHP.

Permite recuperar el contenido de las páginas y artículos, gracias a las funciones WordPress have_posts() y the_post().

Está presente en casi todos los archivos del tema y su particularidad es mostrar el contenido según el archivo PHP (plantilla de página) donde se encuentra, teniendo en cuenta las diferentes condiciones y funciones que integra.

<?php 
while(have_posts()): the_post(); 
    // mis funciones para mostrar contenido 
end while; 
?> 

Dentro del ciclo, inserte las funciones de visualización primarias específicas de WordPress para mostrar contenido o use las funciones principales de recuperación de variables, para crear sus propias funciones. Dentro de un bucle, no es raro ver también una función de inclusión que llama a otro archivo.

1. Las principales funciones de visualización en un bucle

Las funciones de visualización son específicas de WordPress y muestran directamente el resultado. Estas funciones suelen comenzar con el prefijo the_.

  • the_ID(): muestra el id. de un artículo o una página.

<?php the_ID(); ?> 
  • the_title(): muestra el título de un artículo o una página.

<?php the_title($before,$after,$echo); ?> 

La función puede recibir argumentos opcionales:

  • $before: texto antes del título, generalmente HTML como las etiquetas H.

  • $after: texto después del título, normalmente las etiquetas HTML de cierre. Tenga cuidado de respetar la estructura HTML: si usa una etiqueta de apertura <h1> para $before, es esencial que $after use la etiqueta de cierre </h1>.

  • $echo: acepta un valor booleano true o false para su visualización. Por defecto: true.

  • the_content(): muestra el contenido de un artículo o una página. Puede dividir el contenido agregando en el bloque texto WYSIWYG de un artículo o página, a través de la administración, el comentario HTML (quicktags) <!-more->. Se muestra un enlace Más para que el lector pueda leer el final del artículo o la página.

<?php the_content($more, $aftermore); ?> 

Esta función puede recibir argumentos:

  • $more: texto a mostrar en el enlace que permite ver el resto del contenido.

  • $aftermore: acepta un valor booleano true...

Las funciones para los textos en los archivos PHP

Es posible insertar texto sin formato en archivos PHP (pero no es muy recomendable). Desafortunadamente no se tienen en cuenta los caracteres especiales y acentuados. Tiene que usar códigos ASCII o convertirlos a UTF-8, gracias a una función clásica de PHP o usar funciones de WordPress.

La ventaja de utilizar las funciones de WordPress es que han sido especialmente diseñadas para gestionar el multidioma, gracias a un archivo de traducción.

Hay dos funciones de WordPress recurrentes en la mayoría de los temas: __() y _e().

  • __(): devuelve una variable.

  • _e(): cuando se hace un echo de la variable, equivale a hacer echo __().

<?php _e( $text, $domain ); ?> 
<?php __( $text, $domain ); ?> 

Las funciones reciben dos argumentos:

  • $text: el texto a traducir.

  • $domain: el nombre clave del archivo en el que se encuentran las cadenas de traducción.

    Ejemplo:

<?php _e('Nothing Found', 'twentytwenty'); ?> 

Este código muestra el texto "Nothing Found" en la pantalla, pero el texto aparece en español: "Nada encontrado".

WordPress busca el archivo twentytwenty.po ubicado en la carpeta wp-content/language/themes/twenty-es_ES.po, para temas nativos de WordPress; en este ejemplo, el tema en cuestión es Twenty Twenty.

Para temas personalizados, el archivo de idioma se puede ubicar en la carpeta citada anteriormente, pero...

Las rutas en las URL

Varias funciones específicas de WordPress le permiten mostrar las rutas de las diferentes carpetas.

Aquí están las diferentes funciones:

  • site_url(): devuelve la dirección del sitio web como variable.

    Ejemplos: http://www.misitio.com o http://www.misitio.com/carpeta-Wordpress

  • home_url(): devuelve la dirección de la raíz del sitio de WordPress como variable.

    Ejemplo: http://www.misitio.com

  • admin_url(): devuelve la dirección de la administración en forma de variable. 

    Ejemplo: http://www.misitio.com/wp-admin

  • includes_url(): devuelve la ruta del directorio wp-includes como una variable.

    Ejemplo: http://www.misitio.com/wp-includes

  • content_url(): devuelve la ruta de la carpeta wp-content como una variable. 

    Ejemplo: http://www.misitio.com/wp-content

  • plugins_url(): devuelve la ruta de la carpeta de complementos como una variable.

    Ejemplo: http://www.misitio.com/wp-content/plugins

  • theme_url(): devuelve la ruta de la carpeta de temas como una variable.

    Ejemplo: http://www.misitio.com/wp-content/themes

  • wp_upload_dir(): devuelve la ruta de la carpeta de cargas como una variable. 

    Ejemplo: http://www.misitio.com/wp-content/uploads

También encuentra las funciones:

  • get_template_directory_uri(): en el caso de un tema hijo, devuelve la URL de la carpeta del tema padre; de lo contrario, devuelve la carpeta del tema activo.

    Ejemplo: si es un tema hijo:

    http://www.misitio.com/wp-content/themes/mi-tema...

La función bloginfo()

La función bloginfo() permite recuperar diversa información sobre el blog. La función get_bloginfo() devuelve una variable, mientras que bloginfo() muestra el resultado.

La función solicita un argumento obligatorio: $param, para devolver un resultado:

<?php bloginfo($param); ?> 

o:

<?php 
$bloginfo=get_bloginfo($param); 
echo $bloginfo 
?> 

Aquí está el detalle de los diferentes argumentos de la función:

  • bloginfo(’name’): le permite mostrar el título del sitio web. Ha completado el campo Título del sitio en Ajustes - General y puede cambiarlo en cualquier momento en la administración. Encontrará esta información en la tabla wp_options.

  • bloginfo(’description’): se utiliza para mostrar el eslogan del sitio web. Ha completado el campo Descripción corta en Ajustes - General, y puede cambiarlo en cualquier momento en la administración. Encontrará esta información en la tabla wp_options.

  • bloginfo(’wpurl’): muestra la URL del sitio web. Ha completado el campo Dirección de WordPress (URL) en Ajustes - General, y puede cambiarlo en cualquier momento en la administración. Encontrará esta información en la tabla wp_options. Esta función es equivalente a hacer un echo de la función site_url().

  • bloginfo(’url’): se utiliza para mostrar...

La función wp_nav_menu()

WordPress gestiona los menús de forma muy sencilla y le permite crearlos a voluntad a través del panel de administración en Apariencia - Menús. Consulte el capítulo Introducción a WordPress, sección Apariencia.

La función wp_nav_menu() le permite mostrar cualquier menú creado en la administración Apariencia - Menús, en archivos de WordPress. Por tanto, el menú principal del blog utiliza esta función. Normalmente se encuentra en el archivo header.php, pero puede variar según el tema.

En la mayoría de los casos, si no se crea un menú personal como menú principal, WordPress muestra automáticamente las páginas en orden alfabético.

  <?php wp_nav_menu($defaults);?> 

La función puede recibir uno o más argumentos opcionales, clasificados dentro de una tabla.

Aquí está el detalle de la función predeterminada:

<?php 
 
$defaults = array( 
 'menu' => '', 
 'menu_class' => 'menu', 
 'menu_id' => '', 
 'container' => 'div', 
 'container_class' => '', 
 'container_id' => '', 
 'fallback_cb' => 'wp_page_menu', 
 'before' => '', 
 'after' => '', 
 'link_before' => '', 
 'link_after' => '', 
 'echo' => true, 
 'depth' => 0, 
 'walker' => '', 
 'theme_location' => '' 
 'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>', 
 'item_spacing' =>'preserve', 
); 
wp_nav_menu( $defaults ); 
 
?> 

Observe que un menú se compone de la estructura siguiente HTML:

<nav> 
 
<ul> 
   <li><a href='http://mienlace.com'>nombre de mi enlace</a></li> 
   <li><a href='http://mienlace2.com'>nombre de mi enlace2</a></li> 
</ul> 
 
</nav>...

Hooks (filtros y acciones)

Los hooks le permiten personalizar su sitio de WordPress. Hay dos tipos de hooks en WordPress: acciones y filtros.

Los hooks son esenciales al crear funciones en un tema a través del archivo functions.php (a veces archivo de una carpeta adicional) o al crear extensiones.

Fueron creados para no modificar los archivos fuente o extensiones de WordPress, que serían sobrescritos durante una actualización. Los hooks enganchan funciones personalizadas al núcleo de WordPress.

Para conocer los hooks de WordPress, de tema específico o para extensiones, puede usar la extensión Hookr.

Enlace a la extensión Hookr: http://hookr.io

1. Acciones

Los hooks de acciones le permiten cargar funciones WordPress o personalizadas, en un momento dado. Al cargar un sitio, las funciones se ejecutan en un orden específico, por lo que podemos elegir cuándo realizar nuestra acción.

Por ejemplo, para cargar archivos CSS, o para agregar una acción al hacer clic en un botón.

Para agregar una acción, use la función:

<?php add_action($hook, $function_name, $priority, 
$accepted_args); ?> 
  • $hook: argumento obligatorio. Acepta un nombre de acción (aquí está la lista: https://codex.wordpress.org/Plugin_API/Action_Reference, https://adambrown.info/p/wp_hooks) o el nombre de una acción creada en una extensión o un tema, gracias a la función do_action().

  • $function_name: argumento obligatorio. Acepta el nombre de la función donde se desarrolla la acción.

  • $priority: argumento opcional. Se utiliza para especificar el orden en el que se debe realizar la acción. Por defecto: 10. Cuanto menor sea el número, antes se llevará a cabo la acción. Las acciones con la misma prioridad se ejecutan en el orden en que aparecen.

  • $accepted_args: argumento opcional. Se usa para especificar el número de argumentos que pasan en la función $function_name.

Ejemplo

<?php 
   mi_funcion_change_hook(){ 
     // mi acción 
   } 
   add_action('hook_accion_existente','mi_funcion_change_hook'); 
?> 

La función do_action() permite ejecutar una acción que usted ha creado.

<?php do_action( $hook, $arg ); ?> 
 
<?php do_action( $hook, $arg1, $arg2, ... ); ?>...

Globales

Las globales se usan en todas partes en WordPress, es como en PHP. Casi todos los datos en WordPress pueden ser recuperados por globales. Es mejor no modificar las globales directamente, sino utilizar funciones específicas de WordPress.

Para recuperar las globales, declárelas, como en PHP, de la siguiente manera:

<?php global $mi_variable; ?> 

1. Globales en los bucles

La global $post se utiliza dentro de un bucle y devuelve toda la información sobre el artículo o la página. $post usa el objeto WP_Query que verá en la sección Clase WP_Query y consultas del contenido.

<?php global $ post; ?> 

Las funciones dentro de los bucles de WordPress también usan $post para recuperar información. Esta global generalmente la cargan directamente las plantillas de página, por lo que no es necesario declararla por segunda vez.

$post permite recuperar la información en forma de variables. La función get_the_id() equivale a hacer $post->id, por ejemplo.

  • $post->ID: devuelve el id de la página o del artículo.

  • $post->post_author: devuelve el id del autor.

  • $post->post_date: devuelve la fecha utilizada por el servidor en formato: yyyy-mm-dd hh:mm:ss. Ejemplo: 2011-05-19 13:51:21.

  • $post->post_date_gmt: devuelve la fecha GMT (Greenwich Mean Time) utilizada por el servidor.

  • $post->post_content: devuelve el contenido del artículo o de la página....

Las clases de WordPress

WordPress está integrado en la programación orientada a objetos (POO), por lo que utiliza muchas clases.

Estas clases generalmente pertenecen a las API de WordPress. Las API son un conjunto de clases, métodos y funciones que facilitan la codificación.

Ejemplo: API de widgets, API de shortcodes, API en la base de datos, etc.

Las clases le permiten estructurar WordPress. Muchas funciones instancian directamente una clase, y permiten que ciertos métodos se utilicen a través de otras funciones. Además, algunas globales le permiten instanciar directamente una clase.

Por lo tanto, es normal recuperar información de varias formas, ya sea mediante funciones de WordPress, globales o usando objetos directamente.

Los objetos se utilizan como en PHP, por instancia de clase:

<?php $Nombre_del_objeto = new Nombre_de_la_clase; ?> 

Esto es una lista de las clases que utiliza WordPress: https://codex.wordpress.org/Class_Reference

Detallemos algunas:

  • WP_Roles es la clase utilizada para administrar roles.

  • WP_User es la clase utilizada para administrar los roles asignados a los usuarios.

  • WP_Post es la clase que se utiliza para recuperar la información de un artículo o una página.

  • WP_Query es la clase que permite realizar consultas sobre cualquier información relacionada con los artículos o las páginas.

  • wpdb es la clase utilizada para interactuar con la base...

Clase WP_Query y consultas del contenido

La clase WP_Query permite realizar consultas a la base de datos en la tabla wp_posts, y recuperar cualquier contenido relacionado con los artículos y páginas creados en la administración, pestañas Páginas y Entradas, gracias al método the_post().

<?php $ the_query = new WP_Query($ args); ?> 

WP_Query con el método the_post(), devuelve una tabla con el contenido de los artículos y páginas, lo que permite hacer un bucle y recuperar este contenido usando funciones de visualización(ej.: the_title() para el título).

<?php 
$the_query = new WP_Query($args); 
 
if($the_query->have_posts()){ 
   while($the_query->have_posts()){ 
     $the_query->the_post(); 
       //funciones ej.: the_title(); 
   } 
} 
?> 

Muchas de las funciones vistas anteriormente usan la clase WP_Query. El bucle principal de WordPress utiliza el método the_post(), así como funciones que solicitan información sobre el contenido de un artículo o página, pero también marcadores condicionales. El conjunto representa una parte de la API WP_Query.

El bucle con la clase WP_Query y el método the_post(), funciona exactamente como el bucle de WordPress; por tanto, el bucle acepta las mismas funciones de visualización. Este bucle se puede utilizar como bucle secundario del bucle principal.

Es importante tener en cuenta que demasiadas consultas a la base de datos pueden ralentizar el sitio web, según la complejidad de las consultas y la cantidad de artículos o páginas del sitio web.

Este es el enlace del códex sobre los shortcodes: https://developer.wordpress.org/reference/classes/wp_query

1. Los métodos

Estos son los métodos más utilizados para probar o recuperar la global $post, pero hay muchos más que se pueden consultar en el códex de WordPress.

  • have_posts(): permite probar antes o en el bucle, si la tabla devuelta contiene artículos. También está presente antes del bucle de WordPress y se puede considerar como un marcador condicional.

  • the_post(): permite inicializar la global $post y recuperar todos los elementos de artículos o páginas gracias a funciones.

2. Los argumentos

La clase WP_Query...

La clase wpdb y las consultas en formato SQL

Los métodos de la clase wpdb no se utilizan directamente, sino a través de la global $wpdb y permiten la comunicación con la base de datos, mediante consultas SQL.

<?php global $wpdb; ?> 

$wpdb no se limita a las tablas predefinidas por WordPress, sino que se comunica con cualquier tabla en la base de datos. Esto es útil para crear sus propias tablas.

Este es el enlace del códex sobre el objeto wpdb: https://developer.wordpress.org/reference/classes/wpdb/

1. Los métodos útiles

  • $wpdb-> nombre_de_la_tabla (con el nombre de la tabla sin prefijo): permite obtener el nombre de la tabla con el prefijo.

    Ejemplo: en el caso de un prefijo wp_, tiene como nombre para la tabla posts: wp_posts. Para obtener la variable en la forma: wp_posts, haga $wpdb-> posts.

  • $wpdb-> prefix: permite obtener el prefijo de las tablas.

    Ejemplo: en el caso de un prefijo wp_, $wpdb-> prefix devuelve wp_.

<?php 
$prefijo = $wpdb-> prefix; 
// echo $prefijo devuelve el nombre de su prefijo 
?> 
  • $wpdb-> prepare($req, $value, ...): se usa para proteger contra inyecciones de SQL maliciosas. Se usa al insertar variables en la base de datos y es equivalente a usar la función PHP clásica mySQL_real_escape_string().

  • $req: acepta una consulta SQL o un método de consulta.

  • $value: acepta tantos valores para proteger. Identifique los campos para insertar en la consulta $req y reemplácelos con %s para una variable de texto o un número decimal, %d para un número entero y %f para un número aproximado.

    Luego agregue los valores correspondientes al resto de la consulta, en el orden de aparición.

Ejemplo

<?php 
   $string= "Soy una variable de texto"; 
 
$wpdb->query($wpdb->prepare( 
 " 
 INSERT INTO $wpdb->mitabla 
( id, content ) 
 VALUES(%d,%s ) 
 ", 
 10, 
 $string 
   )); ...

La clase WP_rewrite y la reescritura de la URL

Los métodos de la clase WP_rewrite no se utilizan directamente, sino a través de la global $wp_rewrite. Esto permite agregar reglas de escritura, gracias a métodos y funciones específicos.

<?php global $ wp_rewrite; ?> 

Se verá obligado a utilizar este objeto si está utilizando enlaces permanentes (distintos de los predeterminados) para la reescritura de URL (URL rewriting), y desea pasar variables en sus URL, o si está utilizando una estructura de artículos o una taxonomía personalizada, o incluso un bucle personalizado que requiere paginación.

Si está acostumbrado a usar el archivo .htaccess para pasar sus reglas de reescritura de URL, aquí será mejor usar los diferentes métodos que ofrece el objeto WP_rewrite.

WordPress utiliza este sistema para evitar conflictos con diferentes complementos o temas, y la reescritura sistemática del archivo .htaccess. Para evitar conflictos, las reglas de escritura se guardan en la base de datos, en la tabla de opciones.

Localmente, recuerde activar el módulo rewrite_module de Apache.

Aquí tiene el enlace del códex sobre el objeto WP_rewrite: https://codex.wordpress.org/Class_Reference/WP_Rewrite

1. Pasar una variable en una URL con la función add_rewrite_tag()

Para pasar una variable en una URL, debe usar dos funciones de WordPress inseparables:...

Los shortcodes

El shortcode es un código simplificado entre corchetes, propio de WordPress, de la forma:

[mishortcode] 

Permite mostrar el resultado de una función realizada en PHP. Se utiliza en páginas, artículos, etc.

A veces se inserta automáticamente en sus páginas o en sus artículos. Este es el caso cuando crea una galería, por ejemplo. El shortcode se inserta en su editor WYSIWYG y en la página ve su galería de fotos.

Ejemplo

[gallery] 

El shortcode muestra la galería de fotos.

El shortcode también puede aceptar argumentos o recuperar contenido.

Ejemplo

[ gallery columns='2' size='large'] 

La galería está entonces en dos columnas de gran tamaño.

[tag] mi contenido [/tag] 

Es posible recuperar el contenido entre dos shortcodes.

Algunas extensiones requieren el uso de estos argumentos para funcionar, esto generalmente se indica en la documentación de la extensión respectiva.

El shortcode es muy útil para aquellos que son nuevos en la programación. Proporcionar códigos cortos al crear extensiones, puede simplificar muchas tareas.

Aquí está la lista de códigos cortos predeterminados de WordPress:

  • [audio]: le permite agregar música.

  • [caption]: le permite agregar una descripción.

  • [embed]: le permite integrar contenido que requiere la etiqueta HTML embed.

  • [gallery]: le permite crear...

Conclusión

En este capítulo teórico, ha visto las funciones básicas de WordPress que le permiten progresar.

Existen muchas funciones específicas de WordPress y es difícil dominarlas desde el principio. Este capítulo pretende ser un referente en su aprendizaje. Descubrirá a lo largo del libro otras funciones que completarán esta información, con ejemplos concretos.

No dude en consultar el códex. En la Red, encontrará muchos ejemplos que se adaptan a necesidades específicas. El léxico específico de WordPress, que encontrará en todo el libro, contiene tantas palabras clave que le permiten realizar sus propias preguntas.