kokorog
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: ユーザー一覧を50音順に見出しつきで表示できました!
ひとまずシンプルに名前のみのリスト表示ですが、やりたかったことはできました。$yomi_first = mb_substr($yomi_conv, 0, 1);
としなければいけないところを$yomi_first = mb_substr($yomi, 0, 1);
になっていたため一覧が出なかったのでした…参考にした元のソースは読みをカタカナで入力する前提だったため
$yomi_first = mb_substr($yomi, 0, 1);
でも大丈夫だったのですが、自分のサイトは読みをひらがなで入れていたので$yomiで返ってくるのがひらがなでひとつもデータがないことになっていたという…最初に基本的な間違いを指摘してくださったishitaka様がいなかったらずっと見当違いなところを直して悩んでいたと思います。
本当にありがとうございました!<?php //目次(行) $indexes_parents = array( "あ行" => "[ア-オ]", "か行" => "[カ-コ]", "さ行" => "[サ-ソ]", "た行" => "[タ-ト]", "な行" => "[ナ-ノ]", "は行" => "[ハ-ホ]", "ま行" => "[マ-モ]", "や行" => "[ヤ-ヨ]", "ら行" => "[ラ-ロ]", "わ行" => "[ワ-ン]", "その他" => ".*" ); // 目次(五十音順) $indexes = array( "ア" => "[ア]", "イ" => "[イ]", "ウ" => "[ウ]", "エ" => "[エ]", "オ" => "[オ]", "カ" => "[カ]", "キ" => "[キ]", "ク" => "[ク]", "ケ" => "[ケ]", "コ" => "[コ]", "サ" => "[サ]", "シ" => "[シ]", "ス" => "[ス]", "セ" => "[セ]", "ソ" => "[ソ]", "タ" => "[タ]", "チ" => "[チ]", "ツ" => "[ツ]", "テ" => "[テ]", "ト" => "[ト]", "ナ" => "[ナ]", "ニ" => "[ニ]", "ヌ" => "[ヌ]", "ネ" => "[ネ]", "ノ" => "[ノ]", "ハ" => "[ハ]", "ヒ" => "[ヒ]", "フ" => "[フ]", "ヘ" => "[ヘ]", "ホ" => "[ホ]", "マ" => "[マ]", "ミ" => "[ミ]", "ム" => "[ム]", "メ" => "[メ]", "モ" => "[モ]", "ヤ" => "[ヤ]", "ユ" => "[ユ]", "ヨ" => "[ヨ]", "ラ" => "[ラ]", "リ" => "[リ]", "ル" => "[ル]", "レ" => "[レ]", "ロ" => "[ロ]", "ワ" => "[ワ]", "ン" => "[ン]", "その他" => ".*" ); $site_url = network_site_url( '/' ); $args = array( 'exclude' => array( 1 ),// adminを除外 'orderby' => 'meta_value', 'meta_key' => 'yomi', 'order' => 'ASC', ); $my_users = get_users($args); $user_data_set = array(); // 上記の条件のユーザーがいる場合は下記を指定 if ($my_users) { foreach( $my_users as $user ): setup_userdata($user); $uid = $user->ID; $userData = get_userdata($uid); $user_name = $userData->display_name; // ヨミガナの1文字目を取得する(濁点、半濁点は分離) $yomi = get_user_meta($uid, 'yomi', true); // カスタムフィールドyomiの値を取得 $yomi_conv = mb_convert_kana($yomi, 'h', 'UTF-8'); //全角ひらがなを半角カタカナに変換 ※ここで濁点、半濁点を分離する $yomi_conv = mb_convert_kana($yomi_conv, 'K', 'UTF-8');//半角カタカナを全角カタカナに変換 $yomi_first = mb_substr($yomi_conv, 0, 1); // 先頭の1文字を取得 $users['name'] = $user_name; //名前(ペンネーム) $users['yomi'] = $yomi; //読み仮名 $users['yomi_first'] = $yomi_first; //読み仮名1文字目 $user_data_set[] = $users; endforeach; } // 目次(五十音順)ごとにユーザーのデータを格納する $user_data_set_index = array(); foreach ( $user_data_set as $key => $val) { $char = mb_substr( $val['yomi_first'], 0, 1); foreach ( $indexes as $index => $pattern ) { if (preg_match("/^" . $pattern . "/u", $char)) { $user_data_set_index[$index][] = $user_data_set[$key]; break; } } } //目次(行)ごとにユーザーのデータを格納する $user_data_set_index_parent = array(); foreach ( $user_data_set_index as $key => $val) { foreach ( $indexes_parents as $indexes_parent => $patterns ) { if (preg_match("/^" . $patterns . "/u", $key)) { $user_data_set_index_parent[$indexes_parent][$key] = $user_data_set_index[$key]; break; } } } ?> <!--ここから出力--> <div class="js-tab"> <?php if ($user_data_set_index_parent):?> <ul class="js-tab-title"> <?php foreach ($user_data_set_index_parent as $indexes_parent => $users): $x++; $x = sprintf("%02d",$x); ?> <li><a href="#anc-tab<?php echo $x; ?>"><h2><?php echo $indexes_parent; ?></h2></a></li> <?php endforeach; ?> </ul> <div class="js-tab-content"> <?php foreach ($user_data_set_index_parent as $indexes_parent => $users): $i++; $i = sprintf("%02d",$i); ?> <div class="az_list" id="anc-tab<?php echo $i; ?>"> <?php foreach ($users as $index => $user): ?> <h3><?php echo $index; ?></h3> <ul> <?php foreach ($user as $key => $val) { ?> <li><?php echo $val['name']; ?></li> <?php } ?> </ul> <?php endforeach; ?> </div><!-- .az_list --> <?php endforeach; ?> </div><!-- .js-tab-content --> <?php endif; ?> </div><!-- .js-tab --> <!--ここまで出力-->
フォーラム: 使い方全般
返信が含まれるトピック: ユーザー一覧を50音順に見出しつきで表示ishitaka 様
ありがとうございます。
$my_usersのデータは正常なのでそれ以下の処理の部分で何かやらかしているのだと思います…ちょっとがんばって見直してみたらなんとかできそうな気がします。
修正できたら完成コードを張り付けられたらと思うので、(こんなニッチな仕様に需要があるか分からないですが)質問は解決済みにせずちょっとこのままにしておきます。フォーラム: 使い方全般
返信が含まれるトピック: ユーザー一覧を50音順に見出しつきで表示munyagu 様
ishitaka 様ありがとうございます。
最初はhtmlの出力の<?php if ($user_data_set_index_parent):?>
で読み込みが止まってしまっていて、そのあとに読み込まれる<?php get_sidebar(); ?>
も出てこないような状態だったのですが
ishitaka 様に頂いた修正点を修正したところ正しいデータは出ていませんが最後までソースは読み込まれるようになりました。データがまだ全く出ておらず、その他のところだけ空データが出力されています…
$user_data_set[]
が間違っているんだろうなと見直しています。foreach( $users as $user ):
の $users が未定義の変数。foreach( $my_users as $user ):
でした…mb_convert_yomi() が未定義の関数。
mb_convert_kana の間違いでした
$user_data_set[] に何も値が代入されていない。
$user_data_set[] = $users;
に直しました。foreach ($users as $index => $user):
の直後に全角スペースが挿入されている。気づいていませんでした。ありがとうございます。
get_bloginfo(url)
の url が未定義の定数$site_url = network_site_url( '/' );
にしてget_bloginfo(url)
を.$site_url.
にしました。修正後のソース
<!--投稿者一覧を表示--> <div class="cf"> <?php //目次(行) $indexes_parents = array( "あ行" => "[ア-オ]", "か行" => "[カ-コ]", "さ行" => "[サ-ソ]", "た行" => "[タ-ト]", "な行" => "[ナ-ノ]", "は行" => "[ハ-ホ]", "ま行" => "[マ-モ]", "や行" => "[ヤ-ヨ]", "ら行" => "[ラ-ロ]", "わ行" => "[ワ-ン]", "その他" => ".*" ); // 目次(五十音順) $indexes = array( "ア" => "[ア]", "イ" => "[イ]", "ウ" => "[ウ]", "エ" => "[エ]", "オ" => "[オ]", "カ" => "[カ]", "キ" => "[キ]", "ク" => "[ク]", "ケ" => "[ケ]", "コ" => "[コ]", "サ" => "[サ]", "シ" => "[シ]", "ス" => "[ス]", "セ" => "[セ]", "ソ" => "[ソ]", "タ" => "[タ]", "チ" => "[チ]", "ツ" => "[ツ]", "テ" => "[テ]", "ト" => "[ト]", "ナ" => "[ナ]", "ニ" => "[ニ]", "ヌ" => "[ヌ]", "ネ" => "[ネ]", "ノ" => "[ノ]", "ハ" => "[ハ]", "ヒ" => "[ヒ]", "フ" => "[フ]", "ヘ" => "[ヘ]", "ホ" => "[ホ]", "マ" => "[マ]", "ミ" => "[ミ]", "ム" => "[ム]", "メ" => "[メ]", "モ" => "[モ]", "ヤ" => "[ヤ]", "ユ" => "[ユ]", "ヨ" => "[ヨ]", "ラ" => "[ラ]", "リ" => "[リ]", "ル" => "[ル]", "レ" => "[レ]", "ロ" => "[ロ]", "ワ" => "[ワ]", "ン" => "[ン]", "その他" => ".*" ); $site_url = network_site_url( '/' ); $args = array( 'exclude' => array( 1 ),// adminを除外 'orderby' => 'meta_value', 'meta_key' => 'yomi', 'order' => 'ASC', 'meta_query' => array( 'key' => 'sakka', 'value' => 'author', 'compare' => 'like' ) ); $my_users = get_users($args); $user_data_set = array(); // 上記の条件のユーザーがいる場合は下記を指定 if ($my_users) { foreach( $my_users as $user ): setup_userdata($user); $uid = $user->ID; $userData = get_userdata($uid); // ヨミガナの1文字目を取得する(濁点、半濁点は分離) $yomi = get_user_meta($uid, 'yomi', true); // カスタムフィールドyomiの値を取得 $yomi_conv = mb_convert_kana($yomi, 'h', 'UTF-8'); //全角ひらがなを半角カタカナに変換 ※ここで濁点、半濁点を分離する $yomi_conv = mb_convert_kana($yomi_conv, 'K', 'UTF-8');//半角カタカナを全角カタカナに変換 $yomi_first = mb_substr($yomi, 0, 1); // 先頭の1文字を取得 $users['yomi'] = $yomi; //読み仮名 $users['yomi_first'] = $yomi_first; //読み仮名1文字目 $user_data_set[] = $users; endforeach; } // 目次(五十音順)ごとにユーザーのデータを格納する $user_data_set_index = array(); foreach ( $user_data_set as $key => $val) { $char = mb_substr( $val['yomi_first'], 0, 1); foreach ( $indexes as $index => $pattern ) { if (preg_match("/^" . $pattern . "/u", $char)) { $user_data_set_index[$index][] = $user_data_set[$key]; break; } } } //目次(行)ごとにユーザーのデータを格納する $user_data_set_index_parent = array(); foreach ( $user_data_set_index as $key => $val) { foreach ( $indexes_parents as $indexes_parent => $patterns ) { if (preg_match("/^" . $patterns . "/u", $key)) { $user_data_set_index_parent[$indexes_parent][$key] = $user_data_set_index[$key]; break; } } } ?> <!--ここから出力--> <div class="js-tab"> <?php if ($user_data_set_index_parent):?> <ul class="js-tab-title"> <?php foreach ($user_data_set_index_parent as $indexes_parent => $users): $x++; $x = sprintf("%02d",$x); ?> <li><a href="#anc-tab<?php echo $x; ?>"><h2><?php echo $indexes_parent; ?></h2></a></li> <?php endforeach; ?> </ul> <div class="js-tab-content"> <?php foreach ($user_data_set_index_parent as $indexes_parent => $users): $i++; $i = sprintf("%02d",$i); ?> <div class="az_list" id="anc-tab<?php echo $i; ?>"> <?php foreach ($users as $index => $user): ?> <h3><?php echo $index; ?></h3> <ul> <?php foreach ($user as $key => $val) { ?> <li><?php echo '<a href="'.$site_url.'profile/'.$user->user_nicename.'">'.$user->display_name.'</a>'; ?></li> <?php } ?> </ul> <?php endforeach; ?> </div><!-- .az_list --> <?php endforeach; ?> </div><!-- .js-tab-content --> <?php endif; ?> </div><!-- .js-tab --> <!--ここまで出力-->
フォーラム: インストール
返信が含まれるトピック: WP-CLI と WordPress 4.6 で fatal errorこの不具合が出たサイトは私はテーマやプラグインのカスタマイズを行っただけのもので、WP-CLIが入っているかどうかは未知でした。
WP-CLIを誰も入れていないという回答だったため一度WordPress4.5にダウングレードした後、WordPress4.6をFTPで入れ直したところ正常になりました。
WordPress4.6のアップデートの不具合だった可能性もありますが、解決しました。- この返信は8年前にkokorogが編集しました。
フォーラム: インストール
返信が含まれるトピック: WP-CLI と WordPress 4.6 で fatal error追記:そもそものエラー内容は下記です。
Fatal error: Call to undefined function apply_filters() in /Library/WebServer/Sites/example.dev/wp-includes/load.php on line 317
フォーラム: 使い方全般
返信が含まれるトピック: ログイン中のユーザーのカテゴリ一覧リンクを出したいgblsm様
考え方を教えて頂きありがとうございます!
以下コードでできました。・カテゴリ一覧
<ul> <?php $args=array( 'orderby' => 'name', 'parent' => 0, ); $categories=get_categories($args); foreach($categories as $category) { $myposts = get_posts( array( 'post_type' => 'post', 'category' => $category->term_id , 'author' => $current_user->ID, 'numberposts' => -1 )); $mypostscount = count( $myposts ); echo '<li><a href="' . esc_url( home_url( '/author/' .$current_user->display_name. '/?cat='. $category->term_id .'' ) ) . '">' . $category->name . '</a> (' . $mypostscount . ')</li>'; } ?> </ul>
・特定タクソノミーのターム一覧(この場合items)
<?php $taxonomy = 'items'; $args = array( 'parent' => 0, 'pad_counts' => true, 'hide_empty' => false ); $terms = get_terms( $taxonomy , $args ); if ( count( $terms ) != 0 ) { echo '<ul>'; foreach ( $terms as $term ) { $term = sanitize_term( $term, $taxonomy ); $term_link = get_term_link( $term, $taxonomy ); if ( is_wp_error( $term_link ) ) { continue; } $myposts = get_posts( array( 'post_type' => 'post', 'taxonomy' => $taxonomy, 'term' => $term->slug, 'author' => $current_user->ID, 'numberposts' => -1 )); $mypostscount = count( $myposts ); echo '<li><a href="' . esc_url( home_url( '/author/' .$current_user->display_name. '/?'.$taxonomy.'='. $term->slug .'' ) ) . '">' . $term->name . '</a> (' . $mypostscount . ')'; echo '</li>'; } echo '</ul>'; } ?>
ログイン中のユーザーの記事のみのカテゴリ(ターム)へのリンクの書き方が汎用性がなく無理やりでスマートではないですが、なんとかなってほっとしました。
ありがとうございました。
フォーラム: 使い方全般
返信が含まれるトピック: 特定の投稿の編集権限のみをもたせたユーザーを作れますか?ユーザーの権限を「寄稿者」「投稿者」にすれば自分が投稿した記事しか編集できないのでWordPressの基本機能だけでできると思います。
例えばサイト制作者(ユーザー権限「管理者」)が、仮の情報で各店舗の基本情報のページを作り、記事の作成者を各店舗のオーナーのユーザー(権限は「寄稿者」もしくは「投稿者」)に変更する。
そうすると各店舗のオーナーは自分の店舗の情報だけ変更できるようになり、他のユーザーの記事は変更できません。これだけでやりたいことはできるのではないかと思います。
フォーラム: プラグイン
返信が含まれるトピック: 複数著者をセットできるCo Authors PlusでのPrimary Author以外の記事表示gblsm様
ありがとうございます!
頂いたコードで確かに意図した通りに表示することができました!メインクエリに限って正しく共著者を検索できるコードになっていました。さらに、メインクエリであっても query_posts を使って改変したメインクエリには効果がありません。
なるほど、その後auther.phpで表示する著者の記事一覧ではPrimary Author以外の記事も一覧が取得できていることに気づいて、なぜ著者一覧のページで取得できないのか余計に分からなくなっていたのですが、どうしてなのかやっとわかりました。
また、丁寧にコメントを書いてくださってありがとうございます。
ソースだけでなく本体のどこを読めばいいのかまで教示していただいて、まだ完全には理解できていませんが、posts_where_filterを見たときに何をどうやっているのか、なぜそうなっているのか、辿る手がかりを頂けたのがうれしかったです。あまり日本ではメジャーでなさそうなプラグインなので回答を頂けてとても嬉しかったです。どうもありがとうございました。
フォーラム: プラグイン
返信が含まれるトピック: 写真が動いて見える効果のプラグインmootools.jsとslideshow.jsの合わせ技ぽいですね。
そのページと全く同じにしたいならばソースを見た方が早いです。拡大縮小のmootools+slideshowの使い方は下記が詳しいです。
http://solidstate.jp/ImageDisplay/slideshow/script_161.htmlフォーラム: 使い方全般
返信が含まれるトピック: gallery機能でhighslideを使いたいフォーラム: 使い方全般
返信が含まれるトピック: カレンダーに特定のカテゴリをプラグインで特定のカテゴリのカレンダーを表示できる
「Event Calendar」というものがありますよ。