Creación de publicaciones y páginas de WordPress usa PHP: un tutorial básico…

No olvides que ves los Temas y adiciones a WordPress para instalar el car ticamente ‘datos ficticios’ cuando los instal, de modo que inmediatamente tiene un sitio web en pleno funcionamiento. El programa es un método para reproducir este usando solo funciones de PHP.

Este subtítulo da como resultado:

  • Este tema es adicional al requisito de ciertas publicaciones o páginas.
  • Esta proporción es una instalación premium ficticia como se describe anteriormente.
  • Quiero automatizar la creación de publicaciones.
  • Solo quiero aprender.

En este tutorial creamos una función simple para los principios para encontrar una solución al trabajo ‘rápido y seco’. Mejor, en un tutorial diferente, encontramos que extendemos lo que queremos hacer aquí para crear un sistema de publicación robusto y usarlo.

Para aquellos que quieran jugar un juego con un código preexistente en lugar de todos los procedimientos, esta es nuestra función final junto con una muestra de su uso y notas.

if ( ! function_exists( 'PostCreator' ) ) {

	function PostCreator(
		$name="AUTO POST",
		$type="post",
		$content="DUMMY CONTENT",
		$category  = array(1,2),
		$template  = NULL,
		$author_id = '1',
		$status="publish"
	) {

		define( POST_NAME, $name );
		define( POST_TYPE, $type );
		define( POST_CONTENT, $content );
		define( POST_CATEGORY, $category );
		define( POST_TEMPLATE, '' );
		define( POST_AUTH_ID, $author_id );
		define( POST_STATUS, $status );

		if ( $type == 'page' ) {
			$post      = get_page_by_title( POST_NAME, 'OBJECT', $type );
			$post_id   = $post->ID;
			$post_data = get_page( $post_id );
			define( POST_TEMPLATE, $template );
		} else {
			$post      = get_page_by_title( POST_NAME, 'OBJECT', $type );
			$post_id   = $post->ID;
			$post_data = get_post( $post_id );
		}

		function hbt_create_post() {
			$post_data = array(
				'post_title'    => wp_strip_all_tags( POST_NAME ),
				'post_content'  => POST_CONTENT,
				'post_status'   => POST_STATUS,
				'post_type'     => POST_TYPE,
				'post_author'   => POST_AUTH_ID,
				'post_category' => POST_CATEGORY,
				'page_template' => POST_TEMPLATE
			);
			wp_insert_post( $post_data, $error_obj );
		}

		if ( ! isset( $post ) ) {
			add_action( 'admin_init', 'hbt_create_post' );
			return $error_obj;
		}

	}
}

/* All available options for PostCreator()

PostCreator( 'TITLE' , 'POST TYPE' , 'POST CONTENT' , 'POST CATEGORY' , 'TEMPLATE FILE NAME' , 'AUTHOR ID NUMBER' , 'POST STATUS');

TITLE - HTML Stripped Out. Simple String.
POST TYPE - Post type slug. Eg 'post' or 'page'. Custom Post Types are supported.
POST CONTENT - Content of the Post/Page. HTML allowed.
POST CATEGORY - An array of the integer ID's of the category/categories you want to link to your post
TEMPLATE FILE NAME - File name of the template. Only for Pages. In the format 'file_name.php'.
AUTHOR ID NUMBER - Integer value. Default is 1.
POST STATUS - Available options; [ 'draft' | 'publish' | 'pending'| 'future' | 'private' | custom registered status ]

If successful, PostCreator() returns nothing.
If there is an error PostCreator() returns a WP_error object.

*/

PostCreator( 'My Lorem Ipsum', 'page', 'With a sizable serving of Dolor. This was created using Harri Bell-Thomas's PostCreator function.' );

Guío paso por paso

Estamos creando una función PHP PostCreator (), y necesitamos trabajar en algunos parques subterráneos. metro se le ha dado un valor predeterminado, por lo que té cónicamente al llamar a la función no es necesario especificar ninguno de ellos, pero bueno, ¿dónde está la desviación en eso?

function PostCreator(

	$name="AUTO POST",
	$type="post",
	$content="DUMMY CONTENT",
	$category  = array(1,2),
	$template  = NULL,
	$author_id = '1',
	$status="publish"
) {

	// function output here

}

Para continuar, puede definir algunas constantes que son necesarias para la próxima función de incorporación. . pareja otra lección.

define( POST_NAME, $name );
define( POST_TYPE, $type );
define( POST_CONTENT, $content );
define( POST_CATEGORY, $category );
define( POST_TEMPLATE, '' );
define( POST_AUTH_ID, $author_id );
define( POST_STATUS, $status );

Bien, eso está bien ahora. Ahora, incluyó alguna validación para evitar la generación de publicaciones/duplicados (¡que es una pesadilla, crème!). Esta validación debe basarse en la existencia de una publicación/página con el mismo nombre.

La razón por la que es fácil verificar el título de la publicación es porque es todo lo que requiere WordPress para generar una página (el resto se genera automáticamente). Otras formas de implementación incluyen la validación mediante la compilación con ‘servidores’ del ID de la publicación. Todo esto es cierto en un tutorial posterior.

Esto es especialmente cierto para complementar el tema de exigir la publicación/página de la Oficina del Primer Ministro en aras de uno de los requisitos complementarios que puede presentar un estudiante con una determinada planta de la planta con esta función, simplemente mantuve PostCreator en WordPress” admin_init ‘, lo que significa que si alguien intentara eliminarlo (¡cómo se atrevería!), Se volvería a crear inmediatamente suplementamente suplementamente para retardar

Tengo que decir que espero que mi blog esté seguro, así como que puedas seguir lo que sea necesario y que puedas elegir la opción correcta.

Ahora somos válidos para la validación. Aquí está el siguiente fragmento del código.

if ( $type == 'page' ) {
	$post      = get_page_by_title( POST_NAME, 'OBJECT', $type );
	$post_id   = $post->ID;
	$post_data = get_page( $post_id );
	define( POST_TEMPLATE, $template );
} else {
	$post      = get_page_by_title( POST_NAME, 'OBJECT', $type );
	$post_id   = $post->ID;
	$post_data = get_post( $post_id );
}

Entonces, ¿qué diablos está pasando aquí?

Bueno, en esencia es el proceso más repetido de la velada. Hago esto porque las publicaciones y las páginas se tratan de manera ligeramente diferente. Además, la constante POST_TEMPLATE solo se define si está intentando crear una pá Džina, porque solo las pá ginas pueden aceptar ese pará metro (es decir, se ignorará si estáis intentando crear una publicación está ndar).

En la primera línea de la tecla IF (tu nombre técnico es ‘apodosis’ y no lo sabes), se define la variable $post. Si hay una publicación/página con el mismo nombre que se pretende crear, la publicación se completará con los datos de la entrada existente (como objeto, pero como matriz, pero se puede intercambiar y es absolutamente necesario) . Променливата е usa para probar si su tÃtuloinicoes es. Lénes las he incluido porque, nuevamente, son muy útiles si desea extender esta función. Un ejemplo de este apoyo es actualizar las publicaciones existentes y vigentes.

La siguiente es nuestra función de agregar la cadena ‘admin_head’. Aquí está;

function hbt_create_post() {
	$post_data = array(
		'post_title'    => wp_strip_all_tags( POST_NAME ),
		'post_content'  => POST_CONTENT,
		'post_status'   => POST_STATUS,
		'post_type'     => POST_TYPE,
		'post_author'   => POST_AUTH_ID,
		'post_category' => POST_CATEGORY,
		'page_template' => POST_TEMPLATE
	);
	wp_insert_post( $post_data, $error_obj );
}

Simplemente, este es el uso de WordPress (wp_insert_post) para generar nuestras publicaciones/páginas. Complete $ post_data con una matriz de nuestros pares (podemos ver nuestras constantes en nuestro aqua). Este se crea y si hay un error genera un valor booleano $ error_obj. VERDADERO = Un problema. FALSO = Muy bien. Lo último que puede hacer es ejercer la tarea de administrar, pero solo pasar la validación y devolución del objeto de error.

if ( ! isset( $post ) ) {
	add_action( 'admin_init', 'hbt_create_post' );
	return $error_obj;
}

¡Excelente! Ahora que hemos creado nuestra propia función, ¡lo conseguiremos!

uso

Solo tienes que activar la función PostCreator() y ejecútela.

Este es un ejercicio basado en los valores predeterminados, pero ¿qué queremos personalizar? Luego usamos nuestro pará metro.

PostCreator(
	'TITLE',
	'POST TYPE',
	'POST CONTENT',
	'POST CATEGORY',
	'TEMPLATE FILE NAME',
	'AUTHOR ID NUMBER',
	'POST STATUS'
);

Con todas estas opciones, tenemos el poder de usar aprostropos. Asignación de que puede usar un apóstrofo (excepto los que dan nacimiento a los parámetros en él), la antena con una barra en la inclinación de S. P.ej;

PostCreator( 'Alex's Post' );

El TÍTULO del metro acepta el valor de cadena. Esta es una etiqueta HTML.

El par metro ТИП ПОЩЕВКА acepta el servidor del tipo de publicación, por ejemplo; ‘publicación’ o ‘página’. Admite tipos de publicaciones personalizadas.

PostCreator( 'Alex's Post', 'page' );

El POST CONTENT ‘aceptó un valor de cadena. Este es el contenido de la publicación/credo. Aquí quieres HTML.

PostCreator( 'Alex's Post', 'page', 'The force is strong with this one…' );

POST CATEGORÍA aceptar una matriz de números. Los números corresponden al ID de la categoría/categorías atribuidas a la publicación/sobre Gina.

PostCreator( 'Alex's Post', 'page' , 'The force is strong with this one…' , array( 1, 2 ) );

El NOMBRE DEL ARCHIVO DE LA PLANTILLA es un valor de cadena que define la planta de på¡ina décimo de su nueva página. Solo funciona para los cerdos. El formato es serio; ‘nombre_archivo.php’.

PostCreator(
	'Alex's Post',
	page',
	'The force is strong with this one…',
	array( 1, 2 ) ,
	'fullwidth_page.php'
);

El NÚMERO DE IDENTIFICACIÓN DEL AUTOR es un valor de entrada del ID del autor.

PostCreator(
	'Alex's Post',
	'page',
	'The force is strong with this one…',
	array( 1, 2 ) ,
	'fullwidth_page.php',
	'1'
);

El POST STATE define el estado de la publicación/credo. La forma predeterminada es «social».

Opciones Disponibles; [ ‘draft’ | ‘publish’ | ‘pending’| ‘future’ | ‘private’ | custom registered status ]

PostCreator(
	'Alex's Post',
	'page',
	'The force is strong with this one…',
	array( 1, 2 ) ,
	'fullwidth_page.php',
	'1',
	'publish'
);

terminando

WordPress es una herramienta extremadamente poderosa, pero definitivamente se puede reconstruir. Espero que esto sea un fragmento del resultado, que son un par de cosas en la chimenea. Estoy tratando de convertir donde quiero convertir lo que necesito hacer en este artículo en una clase de PHP, agregando mi Funcionalidad y Estabilidad. Para una vista previa, consulte el código en Github: PostController

Si tiene alguna pregunta, solo pregunte en la sección de comentarios para continuar.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *