web-dev-qa-db-ja.com

カスタム投稿タイプのステータス

私は(まだ)私の職場用のカスタム投稿タイププラグインを作成中で、訪問者(私のカスタム投稿タイプ)を "Here"(別名チェックイン)または "Not Here"(未チェック)のどちらかにマークする簡単な方法を見つけました。 -に)。

私は Edit Flow プラグインを調べました、そして、正直に言うと、ここで起こっていることすべてを実際には追跡できません... WordPressの中核にあるように思われる機能に遭遇しますが、私はウェブ上で多くのドキュメンテーションを見つけることができないようです(wordpress.org上でさえも)。関数はregister_post_statusですが、私が見つけた最良のものは このリソース で、せいぜい関数の$argsパラメータに付随する引数しか表示されません。

誰もがこれを試したことがありますか?それとも、カスタム投稿タイプのカスタム投稿ステータスが本当に必要なのは私だけですか?

編集:私は これを読んだ私が受け取った答え/コメント に従って。これは、ドキュメントが欠けているために100%確信が持てない実装です。

私はそれがうまくいかないことを知っています、しかし私はうまくいきませんなぜそれがうまくいきません。 2つのステータスのどちらもステータスリストに表示されません。私の次の行動はそれを分類法でハックして、私自身の 'Publish'メタボックスを作成することです。

    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

カスタム投稿ステータスはWordPressのコアコード内に存在するため登録できますが、管理画面にはまだ正しく実装されていません(たとえば、保留中のレビュー、ドラフト、公開と並んでステータスのドロップダウンリストに表示されません)。 。ですから、現時点では基本的にあなたは彼らとはほとんど関係がありません。

あなたはもっと Tracチケット12706 を読むことができます。

7

私はあなたがステータスの更新を投稿できる場所のように、facebookがすることと同じようなことをしました。あなたがやろうとしていることと同じように私は信じています。ステータスの投稿に使用するために、抜粋とタイトルのみをサポートするカスタム投稿タイプを作成しました。

register_post_statusは、あなたが思っているものではありません。 wpの投稿ステータスは、公開、下書き、将来(予定投稿)、ロック/非公開などです。それらはあなたの投稿のステータスです。公開されているかどうかにかかわらず、設定されているものは何でも。

誰が現在ログインしているのかを表示するには、そのためのプラグインを使用できます。例えばこれをお勧めします。 http://lesterchan.net/portfolio/programming/php/#wp-useronline

また、登録されているすべてのユーザーをループ処理し、それらのIDでis_user_logged_in()を確認する比較的短いスクリプトを作成することもできます。これはログインしているユーザーを返すのにはうまくいきません。登録されているすべてのユーザーをループするだけなので、それらを使って何かをすることができます。あなたはそれがis_user_logged_in()をチェックするようにする方法を考え出すことができますが、どういうわけか私は確かです。

<?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