web-dev-qa-db-fra.com

États personnalisés de type de publication

Je travaille (toujours) sur un plugin de type de message personnalisé pour mon lieu de travail et je suis tombé sur une méthode plus simple pour marquer les visiteurs (mon type de message personnalisé) comme étant "ici" (ou son enregistrement) ou "Pas ici" (non cochée). -dans).

J'ai exploré le plugin Edit Flow et, pour être honnête, je ne peux pas vraiment suivre ce qui se passe ici ... je l'ai cependant fait J'ai trouvé une fonction qui semble être dans le noyau de WordPress, mais je n'arrive pas à trouver beaucoup de documentation sur le Web (aucune sur wordpress.org même). La fonction est register_post_status mais le meilleur que j'ai trouvé était cette ressource qui, au mieux, ne me montre que les arguments associés au paramètre $args de la fonction.

Quelqu'un a déjà essayé ça? Ou suis-je le seul à avoir réellement besoin de statuts de publication personnalisés pour les types de publication personnalisés?

EDIT: J'ai lu ceci et ceci selon les réponses/commentaires que j'ai reçus . Voici une implémentation dont je ne suis pas sûr à 100% car la documentation fait défaut.

Je sais que cela ne fonctionne pas, mais je ne comprends pas pourquoi cela ne fonctionne pas. Aucun des deux statuts n'apparaît dans la liste des statuts. Ma prochaine action consiste à la modifier avec une taxonomie et à créer ma propre boîte de méta "Publier".

    register_post_status('in', array(
            'label' => _x( 'Logged In', $post_type ),
            'protected' => true,
            'label_count' => _n_noop( 'Visitors logged in <span class="count">(%s)</span>', 'Visitors logged in <span class="count">(%s)</span>' ),
            'show_in_admin_status_list' => true,
        ));

    register_post_status('out', array(
            'label' => _x( 'Logged Out', $post_type ),
            'protected' => true,
            'label_count' => _n_noop( 'Visitors logged out <span class="count">(%s)</span>', 'Visitors logged out <span class="count">(%s)</span>' ),
            'show_in_admin_status_list' => true,
        ));
2
Zack

Les statuts de publication personnalisés existent dans le code principal de WordPress; vous pouvez donc les enregistrer, mais ils ne sont pas encore correctement implémentés dans les écrans d'administration (par exemple, ils ne s'affichent pas dans la liste déroulante des statuts aux côtés de En attente de révision, Brouillon, Publié). . Vous ne pouvez donc pratiquement rien faire avec eux pour le moment.

Vous pouvez en savoir plus sur Trac ticket 12706 .

7
Simon Blackbourn

J'ai fait quelque chose de similaire à ce que fait Facebook, par exemple, vous pouvez publier des mises à jour de statut. Semblable à ce que vous essayez de faire, je crois. Je viens de créer un type d'article personnalisé qui ne prend en charge que l'extrait et le titre, à utiliser pour l'affichage des statuts.

Le register_post_status n'est pas ce que vous pensez. Les statuts de publication dans wp sont des éléments tels que publication, brouillon, publication future (publications programmées) et verrouillé/privé. Ils sont les statuts de vos messages. Qu'ils soient publiés ou non, quels qu'ils soient.

Pour montrer qui est actuellement connecté/déconnecté, vous pouvez utiliser un plugin pour cela. Je recommande celui-ci par exemple. http://lesterchan.net/portfolio/programming/php/#wp-useronline

Vous pouvez également créer un script relativement court qui parcourt tous les utilisateurs enregistrés et vérifie si is_user_logged_in() est identifié par son ID. Cela ne fonctionnerait pas pour renvoyer les utilisateurs connectés, mais simplement pour parcourir tous les utilisateurs enregistrés afin que vous puissiez faire des choses avec eux. Vous pourriez trouver un moyen de vérifier si is_user_logged_in () est en quelque sorte sûr.

<?php
$wp_user_search = $wpdb->get_results("SELECT ID, display_name FROM $wpdb->users ORDER BY ID");

foreach ( $wp_user_search as $userid ) {
    $user_id = (int) $userid->ID;

    /* use this or some other current_user() function in WP to check if user is logged 
       @is_user_logged_in();
    */
}
?>
2
jaredwilli