¿Cómo llamar a una función dentro de una página/entrada para generar contenido dinámicamente?
Agregué la siguiente función al archivo functions.php
function contentGenerator($param) {
if($param) {
echo "Content true";
} else {
echo "Content false";
}
}
¿Cómo puedo llamar a esta función dentro de una entrada de blog o página específica?

Si estás hablando del contenido de una entrada o página, no es posible. Aquí hay tres formas diferentes de resolver tu problema. La primera forma te permitirá añadir el contenido generado dentro del contenido de tu entrada (o página). Las otras dos se imprimirán en uno de tus archivos de plantilla, por ejemplo, en tu single.php
o page.php
.
1. Shortcode
Esto está más o menos copiado/pegado de los ejemplos de la API de Shortcodes. Coloca esto en tu functions.php
o en uno de tus plugins personalizados.
Puedes incluir la función en el editor WYSIWYG de tu entrada o página con la siguiente sintaxis:
[unique_shortcode_name foo="123" bar="medium"]
Coloca esto en tu functions.php o en uno de tus plugins personalizados:
add_shortcode('unique_shortcode_name', 'generate_content');
function generate_content($attributes) {
// Analiza los parámetros/atributos y los hace disponibles como variables.
extract(shortcode_atts(array(
'foo' => 'valor predeterminado para foo',
'bar' => 'valor predeterminado para bar',
), $attributes));
// Genera el contenido
$output = complex_content_generation_goes_here();
return $output;
}
También puedes crear un shortcode que incluya contenido. Los shortcodes envolventes te permiten tomar texto como parámetro. Podría llamarse algo así:
[unique_shortcode_name foo="123"]Algún texto de entrada[/unique_shortcode_name]
Lee más sobre esto en la documentación de la API de Shortcodes.
2. Plantilla de página
Esto te dará la capacidad de establecer un archivo de plantilla específico para una página (esto no funcionará para entradas regulares). Aquí está la documentación sobre Plantillas de página.
Puedes basar tu plantilla en un archivo de plantilla ya existente, como page.php
. El único requisito es que coloques un comentario multilínea al principio de tu archivo de plantilla así:
<?php
/*
Template Name: Página de Productos
*/
?>
Realmente no hay ningún requisito para el nombre del archivo, pero trata de no nombrarlo de forma que pueda ser detectado por WordPress a través de la jerarquía de plantillas (ver punto 3). Si lo haces, WordPress podría usar tu plantilla para otras páginas también, lo que te dará resultados inesperados.
Si has hecho lo anterior correctamente, deberías ver una sección de Plantilla con un menú desplegable bajo Atributos de página cuando estés editando o creando una página. Así:
3. Jerarquía de Plantillas
La Jerarquía de Plantillas decide qué plantilla debe usarse para la vista de página actual y lo hace buscando un archivo apropiado por su nombre. Hay una imagen realmente descriptiva de la Jerarquía de Plantillas en el Codex. Por favor, examínala para entender mejor cómo funciona la Jerarquía de Plantillas.

Solo quiero agregar la función a una sola página (la página "Sobre mí") y no a todas las páginas. Quiero llamar a la función en una posición específica de esa página. Intenté llamar a la función agregando comandos PHP dentro del código HTML usando La función de prueba es <?php contentGenerator($true); ?> .
, pero esto no funcionó.

Si estás hablando del contenido de una entrada/página, no es posible. Lo que puedes hacer es agregar un shortcode y llamarlo. También podrías tener un archivo de plantilla específico o usar la jerarquía de plantillas para esa página.
