サポート » 使い方全般 » カスタムフィールドの順番がおかしくなる

  • 解決済 LUARCE

    (@luarce)


    お世話になります。
    すみません、教えてください。

    確認できたのはカスタム投稿タイプの投稿ページからだけになるのですが、
    自分のPCでは大丈夫なのに、他の人のPCから確認したらフィールドの順番が
    変わってしまったという現象です。

    また、表示オプションでチェックを外していたはずの
    作成者が表示されてしまっていました。

    今まではなかったはずなのに、このようなことはあるのでしょうか?

    現在、プラグインは、
    カスタムポストタイプUI+SmartCustomFiledプラグインになっています。

    ちなみにsmartcustomFieldもバグがちょくちょくあるあらしく、
    なぜかループ処理をすると直下のフィールドの値が消えてしまいます。

    そのため、フィールドグループを3つ作りまして、
    ・トピックス基本情報
     日付
     タイトル
     時間 → 繰り返し
    ・トピックス詳細情報
     場所
     内容
     ・・・ect
    ・トピックス画像登録
     画像
     コメント
    こんな感じで何とかやりたいことはできたのですが、
    今回、
    ・トピックス基本情報
    ・トピックス詳細情報
    ・トピックス画像登録
    という順番だったのが、
    ・トピックス画像登録
    ・トピックス詳細情報
    ・トピックス基本情報
    というように並びが勝手に変わってしまっていました。

    他の人がログインしても1つのシステムなので
    本来はあり得ないと思うのですが、

    ユーザーの権限が分かれていたりすると発生したりするのでしょうか?

    すみませんが、教えていただけませんでしょうか?

    よろしくお願い致します。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • Colorful-life.

    (@colorfullifeinfo)

    こんにちは

    確認できたのはカスタム投稿タイプの投稿ページからだけになるのですが、
    自分のPCでは大丈夫なのに、他の人のPCから確認したらフィールドの順番が
    変わってしまったという現象です。

    こちら、管理画面側の新規投稿追加・編集画面でのお話という理解で合っていますでしょうか?
    また、「他の人のPCから確認」とは異なるユーザーでログインした時のお話でしょうか?

    そうであれば、表示オプションやメタBOX(本件の場合は「トピックス基本情報」等のフィールドグループ)の並び順などは、各ユーザー毎に保存されていますので、ユーザーが、それぞれ設定・並び順を変更した場合はユーザー毎に異なる物になります。
    (例えば、 var_dump( get_user_meta(1) ); 等としてみるとわかりやすいでしょうか。)

    • この返信は3 ヶ月前に  Colorful-life. さんが編集しました。
    LUARCE

    (@luarce)

    Colorful-life. 様

    お世話になります。
    ご回答いただきまして、本当に、
    本当にありがとうございます。

    今、うわーってなってるんですが、、、

    おっしゃられます通り、管理画面側の新規投稿・編集画面です。
    厳密にはカスタム投稿タイプになります。

    また、「他の人のPCから確認」につきましては、
    異なるユーザーでログインしているで正しいです。

    ・・・ということは、ユーザー毎に異なる表示をする可能性がある
    ということになるんですね・・・

    そうしますと、はじめてログインしてくるユーザーは
    どうなるんでしょうか・・・?

    逆に異なるユーザーにそれぞれ設定させない方法はないのでしょうか??

    すみませんが、教えていただけましたら助かります。
    よろしくお願い致します。

    Colorful-life.

    (@colorfullifeinfo)

    お気持ちお察しします…

    そうしますと、はじめてログインしてくるユーザーは
    どうなるんでしょうか・・・?

    初期状態は(権限毎に非表示になる物は覗いて)同一になると思います
    メタBOXの並び順は、priorityが同じならメタBOXが登録された順番になるのでしょうか(詳しくは分かっていないです)

    逆に異なるユーザーにそれぞれ設定させない方法はないのでしょうか??

    メタBOXの並び順はちょっと分からないんですが、
    私がよく使うのは、ユーザー権限毎にメタBOXを非表示にしてしまう方法ですね。
    例えばこんな感じです、ご参考まで。
    (下記の例では権限グループがadministratorでは無い場合、一律に作成者とカスタムフィールドのメタBOXを非表示にしてます。権限グループでの判定が不味ければユーザーロールや、ユーザーID・ユーザー名等で判定するなど、適宜変更してください)

    add_action( 'do_meta_boxes', 'clf_remove_author_meta_boxes' );
    function clf_remove_author_meta_boxes() {
    	if ( true !== current_user_can('administrator') ) {
    		// 作成者
    		remove_meta_box( 'authordiv', false, 'normal' );
    		// カスタムフィールド
    		remove_meta_box( 'postcustom', false, 'normal' );
    	}
    }

    remove_meta_boxについて:
    https://codex.wordpress.org/Function_Reference/remove_meta_box

    • この返信は3 ヶ月前に  Colorful-life. さんが編集しました。
    LUARCE

    (@luarce)

    Colorful-life. 様

    ありがとうございます。
    少し腑に落ちてきました!!

    メタボックスが登録された順・・・確かにそんな気もします。

    コードありがとうございます。
    最終手段の時にやってみます・・・笑

    とりあえずアナログ的ですが、
    フィールドの並び順をきっちり時系列に並び変えてみます。

    ちなみにメタBOXを非表示にした際、
    実際のフィールドと表示オプションのチェックボックスの
    両方が消えるのでしょうか?

    Colorful-life.

    (@colorfullifeinfo)

    ちなみにメタBOXを非表示にした際、
    実際のフィールドと表示オプションのチェックボックスの
    両方が消えるのでしょうか?

    はい、remove_meta_boxで指定したメタBOXはチェックボックスも消えます。
    ですので、これが適用された場合(上のコードの例だとadministrator以外)は、(表示オプションから)メタBOXを表示する事自体出来なくなりますね

    LUARCE

    (@luarce)

    Colorful-life. 様

    お世話になります。
    おかげさまで理解できました。

    あとは並び順ですね・・・

    とりあえずしっかり順番にしておいて様子を見てみます。

    この度は本当にありがとうございました。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • このトピックに返信するにはログインが必要です。