web-dev-qa-db-fra.com

Le moyen le plus efficace d’insérer un message en dehors de WordPress?

Je dois insérer un message via PHP en dehors de l'environnement Wordpress (mais sur le même serveur) et je recherche le moyen le plus efficace de le faire.

Je pensais à 2 solutions:

1) Utilisation de XML-RPC, comme expliqué ici _

2) Chargez le noyau WordPress nécessitant wp-load.php puis en utilisant wp_insert_post()

Qui utilise moins de ressources? Je dois juste insérer une nouvelle publication dans la base de données et je n'ai besoin d'aucun support pour les plugins, la thématisation, etc. Il existe un moyen plus hackish de le faire?

Je vous remercie!

3
achairapart

Si vous êtes sur un serveur distant , XMLRPC serait préférable, mais nécessite des informations de connexion.

Si vous êtes dans un script PHP sur le même serveur , wp-load.php serait préférable (XMLRPC impliquera une requête de tri)

Si vous êtes dans un script bash ou CLI , WP CLI serait préférable, par exemple:

wp post create --post_type=page --post_status=publish --post_title='A future post' --post-status=future --post_date='2020-12-01 07:00:00'

Plus d'informations sur WP Les CLI créent une commande postale

Si vous êtes fou , une insertion SQL brute, rapide, bon marché, ne déclenche pas tous les points d'ancrage et les appels d'API nécessaires, option la plus incompatible avec des plugins, des caches, etc.

Si vous êtes encore plus fou , vous pouvez écrire un fichier WXR, puis lancer WordPress Importer

Si vous êtes patient , fournissez-le sous forme de flux RSS et demandez à WordPress d'utiliser un plugin d'agrégation pour le récupérer

Si vous êtes sain d'esprit

Ensuite, aucun script externe ne sera là pour commencer, et vous aurez construit un plugin, utilisé l'API WP AJAX, non créé un fichier dédié pour un gestionnaire de formulaire, etc.

Sauf si vous êtes dans une configuration Symfony ou Zend, votre question indique que vous faites quelque chose de terriblement faux.

Si vous êtes dans une telle situation, il existe des bibliothèques pour cela, des bibliothèques telles que:

https://github.com/kayue/KayueWordpressBundle

Entre autres.

Mais pour toi achairapart

Je dirais que wp-load.php est probablement le moyen le plus sûr et le plus compatible qui ne nécessite pas de requêtes http coûteuses. C'est aussi comment la plupart des bibliothèques vont l'implémenter, c'est aussi comment je le ferais.

Mais gardez à l'esprit que l'insertion/la création d'un post dans WordPress est une opération coûteuse par nature. Vous pouvez réduire la charge, mais l'opération ne sera jamais rapide et rapide si vous n'exécutez pas de site sans plug-in ni publication et ne contenant que l'exemple et la page hello world.

10
Tom J Nowell

Lequel utilise moins de ressources?

Vraiment.

Je n'ai besoin d'aucun support pour les plugins, les thèmes, etc.

Je pense que vous avez répondu à votre propre question. Optez pour la dernière technique (wp-load.php).

3
TheDeadMedic

Il y a une manière plus hackish de faire ceci?

Selon Wiktionnaire hackish signifie:

solutions de contournement mal conçues

Vous pouvez le faire directement via SQL ou même générer un fichier .sql et l'importer directement dans votre base de données ;-)

Ce chemin sera probablement inflexible et même boueux, mais hackish yes ;-)

Mais en général j'irais avec le numéro 2).

2
birgire

Puisque vous êtes sur le même serveur, pourquoi ne pas faire une requête SQL personnalisée, je pense qu’il utilisera moins de ressources serveur que le chargement du fichier core à l’aide de wp-load.php

0
WpMania.Net