フォーラムへの返信

15件の返信を表示中 - 1 - 15件目 (全17件中)
  • トピック投稿者 bristar

    (@bristar)

    ご返信ありがとうございます。
    カスタムでsimpleのテンプレートを選択し、
    テンプレートのコードとcssを軽く調節することで、
    無事出来ました。

    本当にありがとうございました。

    トピックが解決できましたので、
    解決済みとさせていただきます。

    トピック投稿者 bristar

    (@bristar)

    hissyさん
    私の調べが足りないようでした。
    hissyさんのコードでメールアドレスのみ
    ということが出来るようになりました。

    原因が追求しきれなかったので
    なんともいえないですが、
    機能はしましたので、ご報告させていただきます。

    原因や理由は発見次第、
    こちらでご報告させていただきたいです。

    一応、トピックは解決出来ましたので、
    勝手ながら解決済みにさせてください。

    ありがとうございました。

    トピック投稿者 bristar

    (@bristar)

    hissyさん
    コードを教えていただき、ありがとうございます。

    コードを教えていただいたのはありがたいのですが、
    このコードを貼りつけたところ、
    ユーザー名でもメールアドレスでも入れなくなりました。

    私が難しく考えてしまっている部分もあるかと思いますが、
    どのようにすればよいでしょうか?

    トピック投稿者 bristar

    (@bristar)

    hissyさん、遅くなってしまい申し訳ありませんでした。

    3を具体的にどうしてよいか結局わからず、
    いろいろと試してしまったという状況です。

    空の文字列となると以下のような形かと思いましたが、
    以下のようにすると、ユーザー名でもメールアドレスでも
    入れなくなりました。

    function login_with_email_address($username) {
            $user = get_user_by('email',$username);
            if(!empty($user->user_login))
                    $username = $user->user_login;
            return "";
    }
    add_action('wp_authenticate','login_with_email_address');
    トピック投稿者 bristar

    (@bristar)

    ご返信ありがとうございます。

    hissyさんのアドバイスをもとに
    いろいろといじってみたのですが、
    うまく機能しませんでした。

    私の理解が足りていないのですが、
    最初に示したコードに対して
    ユーザー名を入力した時に
    そのユーザー名でのログインを機能させないために、
    ユーザー名のほうに制限をかける、
    という認識でしょうか?

    初歩的な質問で申し訳ないです。

    フォーラム: 使い方全般
    返信が含まれるトピック: カスタムフィールドが表示されない
    トピック投稿者 bristar

    (@bristar)

    orangethymeさん
    リンクを教えていただき、ありがとうございます。
    orangethymeさんが教えて下さったコードを貼り付けてみたのですが、
    私の環境では、変化が見られませんでした。
    (何か原因があるのかもしれませんが、調べてないです。すいません。)

    nobitaさん
    edit.phpへの書き換えと
    && ‘upload.php’ == basename( $_SERVER[‘PHP_SELF’] )の貼り付けで
    成功しました。

    ご丁寧に教えていただき、大変助かりました。

    解決済みとさせていただきます。

    フォーラム: 使い方全般
    返信が含まれるトピック: カスタムフィールドが表示されない
    トピック投稿者 bristar

    (@bristar)

    私の書き方の問題もあったと思いますが、
    現状を改めて報告します。

    以下のコードを貼り付けました。

    <?php
    // Show only posts and media related to logged in author
    add_action('pre_get_posts', 'query_set_only_author');
    function query_set_only_author($wp_query) {
    	global $current_user;
    	if(is_admin() && !current_user_can('edit_others_posts') &&
               'index.php' == basename( $_SERVER['PHP_SELF'] ) ) {
    		$wp_query->set('author', $current_user->ID);
    		$screen = get_current_screen();
    		add_filter('views_'.$screen->id, 'fix_post_counts');
    		add_filter('views_upload', 'fix_media_counts');
    	}
    }
    
    // Fix post counts
    function fix_post_counts($views) {
      global $current_user, $wp_query;
      unset($views['mine']);
      $types = array(
        array('status' =>  NULL),
        array('status' => 'publish'),
        array('status' => 'draft'),
        array('status' => 'pending'),
        array('status' => 'trash')
      );
      foreach($types as $type) {
        $query = array(
          'author'      => $current_user->ID,
          'post_type'   => 'post',
          'post_status' => $type['status']
        );
        $result = new WP_Query($query);
        if($type['status'] == NULL):
          $class = ($wp_query->query_vars['post_status'] == NULL)  ? ' class="current"' : '';
          $views['all'] = sprintf(__('<a href="%s"'. $class  .'>' . __('All') . ' <span class="count">(%d)</span></a>', 'all'),
            admin_url('edit.php?post_type=post'),
            $result->found_posts);
        elseif($type['status'] == 'publish'):
          $class = ($wp_query->query_vars['post_status'] == 'publish') ? ' class="current"' : '';
          $views['publish'] = sprintf(__('<a href="%s"'. $class .'>' . __('Published') . ' <span class="count">(%d)</span></a>', 'publish'),
            admin_url('edit.php? post_status=publish&post_type=post'),
            $result->found_posts);
        elseif($type['status'] == 'draft'):
          $class = ($wp_query->query_vars['post_status'] == 'draft') ? ' class="current"' : '';
          $views['draft'] = sprintf(__('<a href="%s"'. $class .'>'. __('Draft') . ((sizeof($result->posts) > 1) ? "s" : "") .' <span class="count">(%d)</span></a>', 'draft'),
            admin_url('edit.php?post_status=draft&post_type=post'),
            $result->found_posts);
        elseif($type['status'] == 'pending'):
          $class = ($wp_query->query_vars['post_status'] == 'pending') ? ' class="current"' : '';
          $views['pending'] = sprintf(__('<a href="%s"'. $class .'>'. __('Pending') .' <span class="count">(%d)</span></a>', 'pending'),
            admin_url('edit.php?post_status=pending&post_type=post'),
            $result->found_posts);
        elseif($type['status'] == 'trash'):
          $class = ($wp_query->query_vars['post_status'] == 'trash') ? ' class="current"' : '';
          $views['trash'] = sprintf(__('<a href="%s"'. $class .'>'. __('Trash') .' <span class="count">(%d)</span></a>', 'trash'),
            admin_url('edit.php?post_status=trash&post_type=post'),
            $result->found_posts);
        endif;
      }
      return $views;
    }
    
    // Fix media counts
    function fix_media_counts($views) {
      global $wpdb, $current_user, $post_mime_types,  $avail_post_mime_types;
      $views = array();
      $count = $wpdb->get_results("
        SELECT post_mime_type, COUNT( * ) AS num_posts
        FROM $wpdb->posts
        WHERE post_type = 'attachment'
        AND post_author = $current_user->ID
        AND post_status != 'trash'
        GROUP BY post_mime_type
      ", ARRAY_A );
      foreach($count as $row)
        if ($count && $row != 0) {
          $_num_posts[$row['post_mime_type']] = $row['num_posts'];
          $_total_posts = array_sum($_num_posts);
          $detached = isset($_REQUEST['detached']) || isset($_REQUEST['find_detached']);
        };
      if (!isset($total_orphans))
        $total_orphans = $wpdb->get_var("
          SELECT COUNT( * )
          FROM $wpdb->posts
          WHERE post_type = 'attachment'
          AND post_author = $current_user->ID
          AND post_status != 'trash'
          AND post_parent < 1
        ");
      $matches = wp_match_mime_types(array_keys($post_mime_types), array_keys($_num_posts));
      foreach ($matches as $type => $reals)
        foreach ($reals as $real)
          $num_posts[$type] = ( isset($num_posts[$type])) ? $num_posts[$type] + $_num_posts[$real] : $_num_posts[$real];
      $class = (empty($_GET['post_mime_type']) && !$detached && !isset($_GET['status'])) ? ' class="current"' : '';
      $views['all'] = "<a href='upload.php'$class>" . sprintf(__(__('All') .' <span class="count">(%s)</span>', 'uploaded files'), number_format_i18n($_total_posts)) . '</a>';
      foreach ( $post_mime_types as $mime_type => $label ) {
        $class = '';
        if (!wp_match_mime_types($mime_type, $avail_post_mime_types))
          continue;
        if (!empty($_GET['post_mime_type']) && wp_match_mime_types($mime_type, $_GET['post_mime_type']))
          $class = ' class="current"';
        if (!empty( $num_posts[$mime_type]))
          $views[$mime_type] = "<a href='upload.php?post_mime_type=$mime_type'$class>" . sprintf(translate_nooped_plural($label[2], $num_posts[$mime_type]), $num_posts[$mime_type]) . '</a>';
      }
      $views['detached'] = '<a href="upload.php?detached=1"' . ($detached ? ' class="current"' : '') . '>' . sprintf(_x('Unattached <span class="count">(%s)</span>', 'detached files'), $total_orphans) . '</a>';
      return $views;
    }
    ?>

    すると、自分の記事だけでなく、全ての記事が表示される、
    というようになっていますが、
    投稿画面でadvanced custom fieldsのカスタムフィールドは
    表示されました。
    という状況です。

    私自身が混乱していて、何度も報告してしまい、
    本当に申し訳ないです。

    引き続き、方法などありましたら、教えていただきたいです。

    フォーラム: 使い方全般
    返信が含まれるトピック: カスタムフィールドが表示されない
    トピック投稿者 bristar

    (@bristar)

    nobitaさん

    私がいろいろと勘違いしていたみたいです。

    以下のコードを

    add_action('pre_get_posts', 'query_set_only_author');
    function query_set_only_author($wp_query) {
      global $current_user;
      if(is_admin() && !current_user_can('edit_others_posts')) {
        $wp_query->set('author', $current_user->ID);
        $screen = get_current_screen();
        add_filter('views_'.$screen->id, 'fix_post_counts');
        add_filter('views_upload', 'fix_media_counts');
      }
    }

    以下のように変更する、ということで大丈夫でしょうか。

    function query_set_only_author($wp_query) {
      global $current_user;
      if(is_admin() && !current_user_can('edit_others_posts') &&
               'index.php' == basename( $_SERVER['PHP_SELF'] ) ) {
        $wp_query->set('author', $current_user->ID);
        $screen = get_current_screen();
        add_filter('views_'.$screen->id, 'fix_post_counts');
        add_filter('views_upload', 'fix_media_counts');
      }
    }

    以上の変更で、
    エラーは発生しなくなりました。

    しかし、投稿者権限で記事一覧を見てみると、
    自分の記事だけでなく、全ての記事が一覧で表示されていました。
    (「管理画面で他のユーザの投稿数やアップロード数を表示したくない」に
      記載されていたコードが効かなくなりました。)

    お手数ですが、その他なにかコードや方法などありますでしょうか?

    フォーラム: 使い方全般
    返信が含まれるトピック: カスタムフィールドが表示されない
    トピック投稿者 bristar

    (@bristar)

    とんでもないです。
    私は完全に手詰まりの状況でどうしてよいかわからなかったので、
    nobitaさんのように、なにかしらアドバイスや意見などをいただけると
    大変助かります。

    先ほどnobitaさんが提示してくださいましたコードを
    貼り付けたところ、問題なく動作しました。
    (ダッシュボードではdashboardと、それ以外ではanotherと表示されていました。)

    私がエラーを発生させていたコードは以下のようなものです。

    <?php
    function query_set_only_author($wp_query) {
      global $current_user;
      if(is_admin() && !current_user_can('edit_others_posts') &&
               'index.php' == basename( $_SERVER['PHP_SELF'] ) ) {
        $wp_query->set('author', $current_user->ID);
        $screen = get_current_screen();
        add_filter('views_'.$screen->id, 'fix_post_counts');
        add_filter('views_upload', 'fix_media_counts');
      }
    }
    ?>
    
    <?php
    // Show only posts and media related to logged in author
    add_action('pre_get_posts', 'query_set_only_author');
    function query_set_only_author($wp_query) {
      global $current_user;
      if(is_admin() && !current_user_can('edit_others_posts')) {
        $wp_query->set('author', $current_user->ID);
        $screen = get_current_screen();
        add_filter('views_'.$screen->id, 'fix_post_counts');
        add_filter('views_upload', 'fix_media_counts');
      }
    }
    
    // Fix post counts
    function fix_post_counts($views) {
      global $current_user, $wp_query;
      unset($views['mine']);
      $types = array(
        array('status' =>  NULL),
        array('status' => 'publish'),
        array('status' => 'draft'),
        array('status' => 'pending'),
        array('status' => 'trash')
      );
      foreach($types as $type) {
        $query = array(
          'author'      => $current_user->ID,
          'post_type'   => 'post',
          'post_status' => $type['status']
        );
        $result = new WP_Query($query);
        if($type['status'] == NULL):
          $class = ($wp_query->query_vars['post_status'] == NULL)  ? ' class="current"' : '';
          $views['all'] = sprintf(__('<a href="%s"'. $class  .'>' . __('All') . ' <span class="count">(%d)</span></a>', 'all'),
            admin_url('edit.php?post_type=post'),
            $result->found_posts);
        elseif($type['status'] == 'publish'):
          $class = ($wp_query->query_vars['post_status'] == 'publish') ? ' class="current"' : '';
          $views['publish'] = sprintf(__('<a href="%s"'. $class .'>' . __('Published') . ' <span class="count">(%d)</span></a>', 'publish'),
            admin_url('edit.php? post_status=publish&post_type=post'),
            $result->found_posts);
        elseif($type['status'] == 'draft'):
          $class = ($wp_query->query_vars['post_status'] == 'draft') ? ' class="current"' : '';
          $views['draft'] = sprintf(__('<a href="%s"'. $class .'>'. __('Draft') . ((sizeof($result->posts) > 1) ? "s" : "") .' <span class="count">(%d)</span></a>', 'draft'),
            admin_url('edit.php?post_status=draft&post_type=post'),
            $result->found_posts);
        elseif($type['status'] == 'pending'):
          $class = ($wp_query->query_vars['post_status'] == 'pending') ? ' class="current"' : '';
          $views['pending'] = sprintf(__('<a href="%s"'. $class .'>'. __('Pending') .' <span class="count">(%d)</span></a>', 'pending'),
            admin_url('edit.php?post_status=pending&post_type=post'),
            $result->found_posts);
        elseif($type['status'] == 'trash'):
          $class = ($wp_query->query_vars['post_status'] == 'trash') ? ' class="current"' : '';
          $views['trash'] = sprintf(__('<a href="%s"'. $class .'>'. __('Trash') .' <span class="count">(%d)</span></a>', 'trash'),
            admin_url('edit.php?post_status=trash&post_type=post'),
            $result->found_posts);
        endif;
      }
      return $views;
    }
    
    // Fix media counts
    function fix_media_counts($views) {
      global $wpdb, $current_user, $post_mime_types,  $avail_post_mime_types;
      $views = array();
      $count = $wpdb->get_results("
        SELECT post_mime_type, COUNT( * ) AS num_posts
        FROM $wpdb->posts
        WHERE post_type = 'attachment'
        AND post_author = $current_user->ID
        AND post_status != 'trash'
        GROUP BY post_mime_type
      ", ARRAY_A );
      foreach($count as $row)
        if ($count && $row != 0) {
          $_num_posts[$row['post_mime_type']] = $row['num_posts'];
          $_total_posts = array_sum($_num_posts);
          $detached = isset($_REQUEST['detached']) || isset($_REQUEST['find_detached']);
        };
      if (!isset($total_orphans))
        $total_orphans = $wpdb->get_var("
          SELECT COUNT( * )
          FROM $wpdb->posts
          WHERE post_type = 'attachment'
          AND post_author = $current_user->ID
          AND post_status != 'trash'
          AND post_parent < 1
        ");
      $matches = wp_match_mime_types(array_keys($post_mime_types), array_keys($_num_posts));
      foreach ($matches as $type => $reals)
        foreach ($reals as $real)
          $num_posts[$type] = ( isset($num_posts[$type])) ? $num_posts[$type] + $_num_posts[$real] : $_num_posts[$real];
      $class = (empty($_GET['post_mime_type']) && !$detached && !isset($_GET['status'])) ? ' class="current"' : '';
      $views['all'] = "<a href='upload.php'$class>" . sprintf(__(__('All') .' <span class="count">(%s)</span>', 'uploaded files'), number_format_i18n($_total_posts)) . '</a>';
      foreach ( $post_mime_types as $mime_type => $label ) {
        $class = '';
        if (!wp_match_mime_types($mime_type, $avail_post_mime_types))
          continue;
        if (!empty($_GET['post_mime_type']) && wp_match_mime_types($mime_type, $_GET['post_mime_type']))
          $class = ' class="current"';
        if (!empty( $num_posts[$mime_type]))
          $views[$mime_type] = "<a href='upload.php?post_mime_type=$mime_type'$class>" . sprintf(translate_nooped_plural($label[2], $num_posts[$mime_type]), $num_posts[$mime_type]) . '</a>';
      }
      $views['detached'] = '<a href="upload.php?detached=1"' . ($detached ? ' class="current"' : '') . '>' . sprintf(_x('Unattached <span class="count">(%s)</span>', 'detached files'), $total_orphans) . '</a>';
      return $views;
    }
    ?>

    nobitaさんが提示してくださいましたコードと
    「管理画面で他のユーザの投稿数やアップロード数を表示したくない」で
    表示されていたコードを両方そのまま貼り付けたことで、
    httpエラー 500が発生していました。

    自分でも混乱している状況なのですが、
    どう対応すると良いのでしょうか?

    フォーラム: 使い方全般
    返信が含まれるトピック: カスタムフィールドが表示されない
    トピック投稿者 bristar

    (@bristar)

    nobitaさん
    たびたび申し訳ありません。

    nobitaさんがあらためて提示してくださいました
    コードを貼りつけたところ、
    さきほどと同じように
    httpエラー 500が発生しました。

    functions.phpを空にしたり、プラグインを全て停止しても
    同様にhttpエラー 500が発生しました。

    何度も申し訳ないのですが、
    どのようにするとよいのでしょうか?

    フォーラム: 使い方全般
    返信が含まれるトピック: カスタムフィールドが表示されない
    トピック投稿者 bristar

    (@bristar)

    nobitaさん
    ご回答ありがとうございます。

    nobitaさんが提示してくださいましたコードを
    そのまま貼り付けてみたところ、
    httpエラー 500が発生しました。

    原因もわかっていないのですが、
    どのようにするとよいのでしょうか?

    フォーラム: 使い方全般
    返信が含まれるトピック: タグを選択式にしたい
    トピック投稿者 bristar

    (@bristar)

    返信が遅くなってしまいまして、すいませんでした。

    その後自分で調べたところ、まだ理解できていない部分も
    多いですが、少しずつわかるようになりました。

    ご迷惑をおかけして、申し訳なかったです。
    ありがとうございました。

    フォーラム: 使い方全般
    返信が含まれるトピック: タグを選択式にしたい
    トピック投稿者 bristar

    (@bristar)

    pluto1234さんのおっしゃるように、
    「もう一つ別のカテゴリーを追加する」
    という意識でした。

    サイトで検索をする時に、
    2つのカテゴリーで絞りこみをすることを想定したので、
    カテゴリーとタグで用意しておくと
    絞り込みが行いやすいかなと思っていました・・・

    調べてみると、どのサイトもカスタムタクソノミーが
    カスタム投稿タイプとセットで説明されているのですが、
    ただ新しいカテゴリーを追加するためには、
    カスタム投稿タイプの作成が必須になる、
    ということでしょうか?

    フォーラム: 使い方全般
    返信が含まれるトピック: タグを選択式にしたい
    トピック投稿者 bristar

    (@bristar)

    理解力が乏しくて申し訳ないのですが、
    既存のタグを活用するのではなく、
    また、カスタム投稿タイプやカスタムタクソノミーを
    使用するのではなく、
    全く新しい階層式のタクソノミーを
    自作するのが良い、ということでしょうか。

    また、独自に新しい階層型のタクソノミーの
    作成のためのコードやプラグインを
    探して作成していくのがよい
    という認識で大丈夫でしょうか

    フォーラム: 使い方全般
    返信が含まれるトピック: タグを選択式にしたい
    トピック投稿者 bristar

    (@bristar)

    タグを強引に階層型に変更する、や
    新しく階層型のタクソノミーを作る、
    という考えは驚きました。

    実際にそういったことは出来るのでしょうか。
    カスタム投稿タイプとカスタムタクソノミーを
    用意する必要がある、ということでしょうか。

    新しい階層型のタクソノミーの作り方を調べましたが、
    よくわかりませんでした。
    そういったコードやプラグインというものは
    ありますでしょうか。

15件の返信を表示中 - 1 - 15件目 (全17件中)