web-dev-qa-db-fra.com

Stockage des données de type de publication personnalisées dans une table personnalisée

Je travaille sur un tableau d'affichage personnalisé pour un client qui souhaite déployer ce tableau sur un réseau multi-sites. Voici mon problème: je dois stocker certaines tâches dans un tableau qui serait accessible à tous les sites du réseau (par exemple, une liste à l'échelle nationale) au lieu d'uniquement localement (par exemple, une liste locale).

Ma question: les données d'un type d'article personnalisé peuvent-elles être stockées dans un tableau personnalisé?

Edit: Peut-être plus de clarification est nécessaire. Mon client dispose d'un tableau d'affichage multi-sites. Il existe des sites d'emploi pour des régions spécifiques (par exemple, San Diego, Austin, Denver, etc.). À l'heure actuelle, un utilisateur poste un poste pour Denver sur le site de Denver, mais s'il souhaite publier un poste dans tout le pays, il doit l'afficher sur tous les sites du réseau. Nous souhaitons créer un type de publication personnalisé pour les travaux qui donne à l'utilisateur la possibilité de sélectionner une catégorie nationale et de l'afficher lors de l'enregistrement du travail sur tous les sites du réseau. Pour ce faire, nous pourrions notamment faire en sorte qu'une tâche soit étiquetée comme "nationale" en sauvegardant ses données dans une table distincte en dehors de la table typique wp_1_posts afin que nous puissions interroger cette table pour rechercher des tâches nationales et les répertorier sur TOUS les sites de le réseau automatiquement en tant que partie du thème.

2
James H

Vous pouvez certainement sauvegarder les données comme bon vous semble en utilisant l'action save_post. Placez-le simplement dans votre fichier functions.php.

add_action('save_post', 'foo_save_custom_post_type');
function foo_save_custom_post_type(){
    //Use the following debug code to see what information is available to you
    /*
    echo "<pre>";
    print_r($_REQUEST);
    echo "</pre>";
    exit;
    */

    if('custom_post_type' === $_REQUEST['post_type']){
        //Do your custom table bidding here
    }
}

Assurez-vous de l'isoler dans votre type de publication personnalisé, car cette action s'exécute sur tous les types de publication (c'est-à-dire pages, publications, autres cpts). Ne pas isoler votre exploitation peut coûter très cher en ressources système.

1
Brian Fegter

Je ne vois aucune raison pour que vous ne conserviez pas un type de message personnalisé standard, c’est ainsi que les données sont stockées dans la base de données et que cela fonctionne pour plusieurs sites. Si vous avez une raison particulière de créer une table de base de données personnalisée que j'ai manquée, examinez les pods cms, c’est exactement ce que cela fait, ou vous pouvez toujours interagir directement avec la base de données.

http://podscms.org/
http://codex.wordpress.org/Function_Reference/wpdb_Class

1
Wyck