IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WordPress PHP Discussion :

Lister les CPT (PODS)


Sujet :

WordPress PHP

  1. #1
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut Lister les CPT (PODS)
    Je cherche à obtenir la liste des mes CPT PODS pour en faire des items de select ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 706
    Par défaut
    il y a cette fonction qui défini tous les types définis sur le site :
    https://developer.wordpress.org/refe...et_post_types/

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    Mhhhh j'en étais là aussi , mais je reste perplexe avec ce que je récupère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     Array
    (
        [post] => post
        [page] => page
        [attachment] => attachment
        [revision] => revision
        [nav_menu_item] => nav_menu_item
        [custom_css] => custom_css
        [customize_changeset] => customize_changeset
        [oembed_cache] => oembed_cache
        [user_request] => user_request
        [wp_block] => wp_block
        [wp_template] => wp_template
        [wp_template_part] => wp_template_part
        [wp_global_styles] => wp_global_styles
        [wp_navigation] => wp_navigation
        [_pods_template] => _pods_template
        [wpum_directory] => wpum_directory
        [wpforms] => wpforms
        [_pods_pod] => _pods_pod
        [_pods_group] => _pods_group
        [_pods_field] => _pods_field
        [agence] => agence
        [slide] => slide
    )

    Mais pour mon select il ne me faudrait que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        [post] => post
        [page] => page
     
        [agence] => agence
        [slide] => slide
    pour post et page il faudrait que j'en extraie les champs custom

    et pour agence et slide il faudrait que je puisse filtrer pour savoir que ce sont des pods exportables ... mais je ne vois pas comment
    à moins de leur rajouter un champs exportable ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 706
    Par défaut
    pour les champs des articles et des pages, ça fonctionne comme n'importe quel type, donc une fois que tu as l'identifiant de l'objet tu peux travailler avec les champs en utilisant ces fonctions :
    https://developer.wordpress.org/apis/handbook/metadata/
    et cette fonction peut retourner tous les champs d'un objet :
    https://developer.wordpress.org/refe...get_post_meta/

    pour les types "agence" et "slide" tu demandes cela parce qu'en fonction des différents sites, les types n'ont pas le même nom ? qui va créer ces différents types ?

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    Il se peut en effet que selon les sites les types ne soient pas les mêmes ou varient en nombre ou seront provisoires ... d'ou le besoin de variabliser et trouver un moyen de déterminer les types exportables ..
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 706
    Par défaut
    je viens de pense à une particularité des extensions wordpress qui est qu'elles peuvent facilement communiquer entre elles.
    donc par exemple sur chaque site, tu peux avoir une extension spécifique qui contient une liste de types en dur dans le code php. et ensuite sur chaque site tu auras une extension commune qui va récupérer cette liste et faire le traitement.

    est ce que déjà du point de vue théorique tu pense que ça pourrait t'aider ou bien ça ne convient pas avec l'architecture que tu as en place ?

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    En effet je n'avais pas pensé à cette possibilité de fichier listant les types CPT exportables.
    Mais cela voudrait dire que ce fichier est figé pour chaque site et non dynamique ce qui serait blocant si je délègue la création de PODS, a moins de trouver un système de mise à jour du fichier lors de la création ou suppression de POD ...
    Je pense que je vais être obligé de passer par un champs custom dans le CPT et tester l'existance de ce champs pour générer la liste ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 706
    Par défaut
    si la liste n'est pas fixe, tu peux la stocker dans la base de données dans une "option" :
    https://developer.wordpress.org/apis/handbook/options/

    ce que je fais souvent dans mes extensions c'est un seule option du nom de l'extension qui contient un tableau avec plusieurs clés. comme ça en fonction des besoins futurs tu pourras ajouter des clés au tableau.

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    Donc stocker l'option "exportable" de CPT daans une otion et la mettre à jour à là création supression ou modification d'un POD.
    ça me rajoute une couche de dev sur les CPT avec une case à cocher "exportable" ce qui revient à rajouter un champ au CPT non ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  10. #10
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 706
    Par défaut
    si tu rajoutes un champ, c'est dans le cas où tu l'utilises pour chaque objet comme le prix de chaque produit.
    là c'est une valeur à enregistrer au niveau du site donc tu en as juste besoin une fois.

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    Oui donc une option globale au CPT, mais comment je l'update à la création ou modification de mes PODS ?
    J'ai toujours cette barrière de devoir intervenir sur l'existant pour y rajouter des opérations de mise à jour et je ne sasi pas à quel niveau ça se passe
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  12. #12
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 706
    Par défaut
    si tu veux "écouter" la création et la suppression types dans l'extension pods, c'est normal que tu trouves ça plus compliqué parce que là il faut lire le code de cette extension pour comprendre comment elle fonctionne.

    et donc tu peux faire cela par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    add_action("save_post__pods_pod", function ($post_ID, $post, $update) {
     
    	$option_NomExtension = get_option("NomExtension");
     
    	if (!isset($option_NomExtension["liste_types"])) {
    		$option_NomExtension["liste_types"] = [];
    	}
     
     
    	$option_NomExtension["liste_types"][] = $post->post_name;
     
    	update_option("NomExtension", $option_NomExtension);
     
     
    }, 10, 3);
     
     
    add_action("deleted_post", function ($post_ID, $post) {
     
    	if ("_pods_pod" !== $post->post_type) {
    		return;
    	}
     
     
    	$option_NomExtension = get_option("NomExtension");
     
    	$option_NomExtension["liste_types"] = array_diff(
    		  $option_NomExtension["liste_types"]
    		, [$post->post_name]
    	);
     
    	update_option("NomExtension", $option_NomExtension);
     
     
    }, 10, 2);

  13. #13
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 661
    Billets dans le blog
    1
    Par défaut
    si tu veux "écouter"
    OUi !! c'est exactement ça mon souci est souvent de pouvoir écouter les actions pour faire d'autres actions custom ...
    Si en plus a chaque fois ça dépende du développement du plugin ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Lister les softs installés sur un Pc
    Par Jflgb dans le forum C++Builder
    Réponses: 18
    Dernier message: 23/06/2004, 18h34
  2. [ODBC] Intranet en PHP : Lister les tables d'une base Access
    Par fblouet dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 28/10/2003, 15h46
  3. Lister les tables d'une Base
    Par YanK dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 08/10/2003, 11h40
  4. [VB6] [Réseau] Lister les ordinateurs du réseau
    Par CYFL dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/12/2002, 10h25
  5. [TP]Lister les fichiers d'un répertoire
    Par nvtitan dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 21/06/2002, 12h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo