Cómo dejar de publicar una publicación en WordPress con PHP

La última vez, hablé sobre cómo el complemento de imagen requerido detiene la publicación de una “publicación” de WordPress sin una imagen característica adjunta a JavaScript.Este enfoque es limitado (como han enfatizado algunos comentaristas), ya que los usuarios pueden deshabilitar JavaScript, y WordPress a veces publica publicaciones a veces que cuando un usuario hace clic en la interfaz de administración de WordPress en un navegador web.Entonces, esta semana, nos centramos en las partes del complemento escrito en PHP que sirven para evitar el contenido de WordPress sin una imagen presentada.Y de nuevo, el video fue la primera forma en que compilé este contenido, así que no dude en ver y omitir la lectura esta semana:
https://www.youtube.com/watch?v=vcfqfdhetcg
(Como la última vez, es posible que deba hacer una pantalla completa con un 720p o una mejor resolución para rastrear bien. Nuevamente, mis disculpas por ello). Si leer es cómo aprende mejor, por favor lea más. Cubriremos tres cosas básicas: cómo puede dejar de publicar una publicación en WordPress, cómo puede verificar si se adjunta una imagen presentada y lo suficientemente grande en PHP y cómo usar PHP para poner los archivos JavaScript en condicionados. Cómo dejar de publicar una publicación en WordPress No recuerdo cómo inicialmente dejé de publicar una publicación de WordPress para este complemento, pero sé que fue más complicado y menos robusto que cómo lo hace el complemento ahora. Esto se debe a que no me di cuenta de que hay un gancho de WordPress muy conveniente para exactamente este tipo de situación, llamado traducción_post_status. Así es como se usa en el complemento: add_action (‘transition_post_status’, ‘rfi_guard’, 10, 3); Function rfi_guard ($ new_status, $ Old_status, $ post) {if (new_statush === ‘Publish’ && rfi_should_stop_post_publishing ($ post)) {wp_die (rfi_warning_message ()); }} Lo primero que debe hacer es que Transition_Post_Status es una acción y que en realidad capturamos tres argumentos (que es menos común para las acciones): el estado de transición, el estado de transición de y el total de $. para el contenido en cuestión. Para obtenerlos los tres, pasamos el cuarto argumento a add_action. Si lo olvidó, los argumentos para add_action son:
El nombre de la acción a la que se conecta.
Nombre (o literal) de la función que desea ejecutar cuando se active esa acción.
Prioridad (orden de banda de rodadura) de su función conectada.
El número de argumentos de que se espera su función (#2).
Porque quería el primer y tercer argumento, y el segundo es capturado. En la función RFI_GUARD, vemos cómo detenemos que WordPress publique una publicación que no queremos hacer: dejamos de hacer todo con WP_DIE, llamado violentamente. ¿Es un poco drástico “matar” el proceso solo para detener la publicación de un puesto? Tal vez, pero esta es la mejor manera que sé para asegurarme de que no se publique.
Cuando el complemento detiene la publicación de una publicación, la función rfi_guard anterior detiene la publicación solo llamando a wp_die () si ciertas cosas son verdaderas. El primero es que el estado de transición de la publicación es la cadena literal ‘publicar’. Esto significa que solo cuando una publicación se publique “, independientemente de su estado anterior, lo detendremos. Esto se debe al hecho de que algunas personas pueden tener publicaciones internas como bocetos y, una vez que se completa el autor, se dirige a un editor para, por ejemplo, copiar y adjuntar las imágenes presentadas. Para no crear el caos donde no sea necesario, el complemento simplemente no hace nada en esa transición.
La parte más interesante del condicional es la segunda mitad, rfi_should_stop_post_publishing. Veamos esa función: función rfi_should_stop_post_publishing ($ post) {$ is_watched_post_type = rfi_is_supported_post_type ($ post); $ IS_AFTER_ENFORMIT_TIME = RFI_IS_IN_ENFORMIT_WINDOW ($ post); $ Gran_enough_image_attached = rfi_post_has_large_enough If ($ is_after_enforcement_time && $ is_watched_post_type) {return! $ Grande_enough_image_attached; } Retorno falso; } Esta función en sí apela tres funciones posteriores a tres variables temporales instantáneas (cuyo único propósito es hacer que el condicional sea más fácil de entender). Básicamente, el código dice “La fecha de publicación de esta publicación es después de modificar la aplicación y esta publicación es del tipo de publicación que estamos siguiendo?” La ventana de la aplicación es la forma en que el complemento trata del hecho de que algunos sitios pueden ser más antiguos que la función de imagen presentada en WordPress y puede querer editar publicaciones antiguas sin agregar imágenes presentadas. (Se pueden proporcionar más detalles si es necesario …) La pregunta sobre el tipo de publicación es porque, aunque el complemento solo trata por el tipo de “publicación” de publicación, también se puede usar para, por ejemplo, “testimonios”.
Dentro de ese condicional, notará el signo de exclamación. (A los programadores les gusta decir “golpear” cuando leen ese símbolo). Esto es negativo o una reversión, por lo que si $ grande_enough_featureed_image es tru, la función devuelve falso y viceversa. Esto se debe al hecho de que la función se trata de si la publicación debe detenerse de la publicación. Una imagen suficientemente grande debería significar que no se detiene de la publicación. Una imagen que no es lo suficientemente grande significa que se debe detener. Cómo averiguar si un objeto de publicación tiene una imagen recomendada muy grande al final, la función que más importa es la que determina si se adjunta una imagen suficientemente grande. Se ve así: función rfi_post_has_large_enough if ($ image_id === null) {false return; } $ Image_meta = wp_get_attachment_image_src ($ image_id, ‘full’); $ width = $ image_meta [1]; $ Altura = $ image_meta [2]; $ minim_size = get_option (‘rfi_minimum_size’); if ($ width> = $ minim_size [‘width’] && $ height> = $ minim_size [‘height’]) {return true; } Retorno falso; } Al igual que todas las demás funciones llamadas en rfi_should_stop_post_publishing, esta característica devuelve valores simples verdaderos o falsos para responder la pregunta que sugiere su nombre. ¿Cómo está esto? Primero intente que se presente la imagen con get_post_thumbnail_id. (En WordPress, las funciones que se refieren a las “imágenes presentadas” generalmente tienen miniatura en su nombre. Te acostumbras después de un tiempo, pero es un artefacto de cómo la idea apareció por primera vez en WordPress).

Entonces, si hay una ID numérica para la imagen, entonces este será un número no nulo (vacío).Si está vacío, devolvemos falso, porque la publicación en cuestión no tiene una imagen presentada en absoluto.Si tiene una imagen presentada, continuamos.Usamos la función WP_GET_ATTACHMENT_IMAGE_SRC para tener acceso al tamaño de la imagen.Esto nos permite hacer la última verificación, que es comparar ese ancho y altura con la configuración del complemento guardada para cuán grandes deben ser el ancho y la altura.Si ambas dimensiones son tan grandes o más grandes, entonces devolvemos verdadero.Si no es falso.
Cómo poner a JavaScript condicionado en WordPress Lo último que es interesante (para mí) sobre PHP para el complemento está relacionado con el archivo JavaScript que discutí por última vez. Para mantener las cosas lo más simple posible, hemos eliminado los cheques alrededor de esta “ventana de aplicación” y “tipo de publicación” que tuvimos que hacer en las verificaciones de PHP. Esto se activa por el hecho de que pusimos a JavaScript en la cola solo cuando deben aplicar. ¿Cómo? Con un bloque de cola que se ve así: add_action (‘admin_enqueue_scripts’, ‘rfi_enqueue_edit_screen_js’); función rfi_enqueue_edit_screen_js ($ gancho) {global $ post; if ($ gancho! == ‘post.php’ && $ gancho! == ‘post-next.php’) {return; } If (rfi_is_supported_post_type ($ post) && rfi_is_in_enforcement_window ($ post)) {wp_register)); wp_enqueue_script (‘rfi-admin-js’); $ minim_size = get_option (‘rfi_minimum_size’); wp_localise_script (‘rfi-admin-js’, ‘passFromServer’, // matriz de valores para js);
}} La primera parte es una verificación simple que asegura que no pongamos el script en la cola en las páginas donde es irrelevante. El segundo bloque utiliza las mismas funciones familiares en el condicional anterior, aunque sin el uso conveniente de variables temporales para mejorar la legibilidad. Pero, prácticamente, el condicional es el mismo: si el PHP que escribí antes alcanzaría esa verificación final del tamaño de la imagen, entonces ponemos el script en la cola. Si no fue, entonces no lo hacemos. Esto tiene sentido: el papel de JavaScript es dar a los usuarios una mejor experiencia que las verificaciones de PHP, pero hacer la misma tarea en esencia. Y así funciona. Ahora sabes … junto con el artículo hace dos semanas, ahora puedes entender todas las características interesantes de la imagen destacada. Se omiten algunos detalles más prosaicos (aburridos): la página de configuración, los detalles de la traducción, algunas de las funciones y características de ayuda más silenciosa, pero el contorno debe ser claro para usted. Probablemente nunca tendrá la razón para escribir un complemento para hacer exactamente lo mismo que hace, pero espero que la exploración de ello haya sido aclaradora y útil. ¡Aquiando feliz! Imagen de crédito: SpaceX a través de Unsplash

Copyright statement: Unless otherwise noted, this article is Collected from the Internet, please keep the source of the article when reprinting.

Check Also

gkOVSBm5B8SgiXmo

Shopify vs WooCommerce – ¿Cuál es la mejor plataforma?(Comparación)

Shopify vs WooCommerce

Leave a Reply

Your email address will not be published. Required fields are marked *