2010-12-06 12 views
6

Je veux faire un plugin, que je vais utiliser pour un chargement jQuery AJAX de données de table.Wordpress plugin: Hook sur l'url personnalisée

J'ai une fonction qui imprime les données correctement, mais comment puis-je "accrocher" dans une URL spécifique?

Comme dire, je veux que la fonction soit exécutée, et les données à imprimer chaque fois qu'une demande à /mycustomplugin/myurl.php est exécutée? (Veuillez noter que l'url/fichier ne devrait pas exister)

Je n'ai aucune expérience avec les plugins WP.

Répondre

0

Un simple

if ($_SERVER["REQUEST_URI"] == '/mycustomplugin/myurl.php') { 
    echo "<my ajax code>"; 
} 

Si des merveilles.

0

Si vous voulez renvoyer des données wordpress régulières vous pourriez simplement inclure wp-blogheader.php dans votre fichier php personnalisé comme si


//Include Wordpress 
define('WP_USE_THEMES', false); 
require('Your_Word_Press_Directory/wp-blog-header.php'); 
query_posts('showposts=10&cat=2'); 

Il suffit d'utiliser les balises régulières thématisation pour retourner le contenu que vous désirez. Ceci

D'où viennent vos données de table? Êtes-vous en train d'essayer de montrer cette information du côté administrateur ou côté visionneuse?

Voir aussi pour une ventilation complète de l'appel de fonctions crocheté wp_ajax http://codex.wordpress.org/AJAX_in_Plugins

19

Pour filtrer votre URL personnalisée avant Wordpress commence à exécuter des requêtes pour d'autres choses utilisent quelque chose comme ceci:

add_action('parse_request', 'my_custom_url_handler'); 

function my_custom_url_handler() { 
    if($_SERVER["REQUEST_URI"] == '/custom_url') { 
     echo "<h1>TEST</h1>"; 
     exit(); 
    } 
} 
+0

Pour une raison quelconque cela ne fonctionne que dans le front-end, je serais probablement utiliser un crochet d'action différent, pas sûr lequel ('wp' vs' admin_init'). –

+0

Étant totalement ignorant de l'API WordPress, je vais devoir demander: Où faut-il mettre ce code? Je voudrais utiliser cette méthode dans un plugin et je ne veux pas éditer des fichiers préexistants WP, mais seulement les fichiers de mon plugin. – NoOne

+0

OK. Je l'ai mis dans mon fichier de pluging (dans 'wp-content \ plugins') tel quel, j'ai activé le plugin, mais ça ne marche pas ... :(Je me demande pourquoi ... – NoOne