anspressの使い方を本気で書いて見る③
※2019.3.14追記※
総まとめってわけでもないけど、現在まで何をやってきたかをanspress第三段として書きました。参考になるかと思いますんで読んでみて下さい。
※追記終わり!※
※2019.1.11追記※
カテゴリーごとに個別のページを作るよ!に一部加筆しました。
①はこっから
①に引き続きanspressのことを書いていきます。
正直バイク屋がこんなの書いなんなの?って気持ちもありますが、もしかしたら誰か参考にするかもしれないんで、
頑張って書いておこうと思っています。
特定の登録ユーザーってのはログインもしていないし、ページを見ているユーザー出もない、 見ている人とは関係ないけどプロサンサーに登録している人の事だと思ってください。
プロサンサーでは回答できる人をその道のプロの人に限定させてもらっているのですが、その人達の プロフィール画面((例)でちょこっと使っています。
ここで、住所とかその辺はwordpressの登録内容を引っ張ってきて、下の欄の回答数とかをanspressから引っ張ってる。
いじってるファイルはテンプレファイルをテーマディレクトリに移動させている場合、 テーマディレクトリ\anspress\addons\user\index.phpなになる。
上記のindex.phpの中なら当然ですけど、もう記述がある
<?php $user_id = ap_current_user_id(); ?>
これをもとに
<?php echo ap_total_posts_count( 'answer', false, $user_id )->total . "回"; ?>
<?php echo ap_total_posts_count( 'question', false, $user_id )->total . "回"; ?>
<?php echo ap_total_posts_count( 'answer', 'best_answer' , $user_id )->total . "回"; ?>
いるのかって言われるとアレだけど取れたんで取ってみた
<?php echo ap_get_user_reputation($user_id) . "点"; ?>
ざっくりこんな感じ
各カテゴリーごとにページを作ってそこにそのカテゴリーの回答や回答者を載せたかったんだけど、 実はうまく行っていない。
方法は簡単で、各カテゴリー用の固定ページを作って質問とかを表示させたい場所に
[anspress categories="category_スラッグ"]
って書くだけなんだけど、これがなぜかダメ。anspressの公式サイト でも同様の問題が質問されているんだけど、スペルミスじゃね?で終わってるっぽい
まだそれほど突っ込んで調べてたわけじゃないんで、他の解決方法があるのかもしれない。まぁぼちぼち調べます。
※ココより2019.1.11追記に追記部分※
なんでできてなかったのかやっと原因がわかった。
上にに書いてある
[anspress categories="category_スラッグ"]
の部分を
[anspress categories="スラッグ"]
に変更するだけでした。
ともかくこれでカテゴリーごとのページができた。一応こんな感じにしてみている。バイクの項目へGO
※2019.1.11追記はここまで!※
これはanspressと関係ないところなんだけど、一応ざっくり書いておきます。
参考にさせてもらったサイトはパソコン倶楽部りんご さんの WordPressのユーザー一覧ページ用のテンプレートです。 この場を借りてまたまたお礼を!ありがとうございました!
ただここに載っている方法だと全ユーザーが一覧として出力されてしまうので、ちょこっとだけいじらせてもらってます。
プロアンサーでは各カテゴリーには専用の権限を持つ人しか回答できないようになってます。
なんで、まず各ページに適応する人達の数をカウントします。
パソコン倶楽部りんごさんのページを参考にしてこんな感じで追加
<?php $total_users = count_users();//全ユーザー数を引っ張ってきて if(is_page( 'categorys-motorcycle' )) {$total_users = $total_users['avail_roles']['auser_motocycs'];}//ページスラッグによってどの権限を持っている人をカウント ?>
<?php if(is_page( 'categorys-motorcycle' )){$prokengen = 'auser_motocycs';}//ページスラッグによって$prokengenに権限名を入れる $args = array( 'role' => $prokengen, 'orderby'=>'post_count', 'order'=>'DESC', 'offset' => $paged ? ( ($paged - 1) * $number) : 0, 'number' => $number,); $users = get_users( $args );//$usersに該当するユーザー情報をいれてっと ?>
こんな感じ
<?php foreach($users as $user): $uid = $user->ID; $userData = get_userdata($uid); $ap_user_query = new WP_User_Query($uid); ?>
改行めちゃくちゃだし説明になってないかもしれないけど、こんなことやりました…
そのうちちゃんと説明できる男になりますんで、許してください…
質問、回答の際の小窓?部分を表示させてる部分。場所はテンプレート直下にあります。
ここでいじったのは質問した人と回答した人の都道府県表示とWEBサイトのリンクです。
回答する際に使うphp。
場所はテンプレート直下にあります。
プロアンサーでは回答権限があって、且つ登録カテゴリーが一致している人じゃないと答えらないようにしたかったので
この辺とfunctions.phpでごそごそやってます。
ほんとはごそごその中身も見せたいんですけど、大人の事情により今はちょと見せられない…
つーか実はまだ完璧に動いていないんで、できたら乗せてみます。
たぶんいじったところ全部じゃないけど、こんなところで!
思い出したり追加があったらまた書きます。