anspress の日本語化とか使い方を本気で書いてみる②

※2019.3.14追記※

総まとめってわけでもないけど、現在まで何をやってきたかをanspress第三段として書きました。参考になるかと思いますんで読んでみて下さい。

※追記終わり!※

※2019.1.11追記※
カテゴリーごとに個別のページを作るよ!に一部加筆しました。

①はこっから

に引き続きanspressのことを書いていきます。
正直バイク屋がこんなの書いなんなの?って気持ちもありますが、もしかしたら誰か参考にするかもしれないんで、 頑張って書いておこうと思っています。

続・いろんな値をとってくるよ!

特定の登録ユーザーのいろんな値

特定の登録ユーザーってのはログインもしていないし、ページを見ているユーザー出もない、 見ている人とは関係ないけどプロサンサーに登録している人の事だと思ってください。

プロサンサーでは回答できる人をその道のプロの人に限定させてもらっているのですが、その人達の プロフィール画面((例)でちょこっと使っています。

ここで、住所とかその辺はwordpressの登録内容を引っ張ってきて、下の欄の回答数とかをanspressから引っ張ってる。

いじってるファイルはテンプレファイルをテーマディレクトリに移動させている場合、 テーマディレクトリ\anspress\addons\user\index.phpなになる。

例によってユーザーID

上記の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);
                    ?>
                    

改行めちゃくちゃだし説明になってないかもしれないけど、こんなことやりました…
そのうちちゃんと説明できる男になりますんで、許してください…

他のいじっている場所

answer.phpとsingle-question.php

質問、回答の際の小窓?部分を表示させてる部分。場所はテンプレート直下にあります。

ここでいじったのは質問した人と回答した人の都道府県表示とWEBサイトのリンクです。

answer-form.php

回答する際に使うphp。
場所はテンプレート直下にあります。
プロアンサーでは回答権限があって、且つ登録カテゴリーが一致している人じゃないと答えらないようにしたかったので この辺とfunctions.phpでごそごそやってます。

ほんとはごそごその中身も見せたいんですけど、大人の事情により今はちょと見せられない…
つーか実はまだ完璧に動いていないんで、できたら乗せてみます。

たぶんいじったところ全部じゃないけど、こんなところで!
思い出したり追加があったらまた書きます。

LINEで送る
このエントリーをはてなブックマークに追加
Pocket

コメント欄です。あんまり酷いことは書かないでください。

お知らせ

ブログの最新記事

管理人のブログ

トップにもどる