【Wordpress】記事のコメント一覧に2chみたいに番号を振るよ!
ワードプレスの記事に付けられたコメント一覧に、2ch掲示板っぽく番号を付けるよ!
イメージとしてはこんな感じ・・。
1.名無しさん
記念カキコ
2.名無しさん
記念パピコ
3.名無しさん
記念マキコ
functions.phpに以下のような関数を定義すると、そのコメントの番号を計算することができます!
//コメントIDから番号を計算して返却する function get_comment_index($comment_id){ global $wpdb; $result = $wpdb->get_results("SELECT * FROM wp_comments WHERE comment_ID='$comment_id'", ARRAY_A); if (!count($result)){ return null; } $post_id = $result[0]['comment_post_ID']; $result = $wpdb->get_results("SELECT comment_ID, (SELECT COUNT(*)+1 FROM wp_comments B WHERE B.comment_post_ID='$post_id' AND B.comment_ID < A.comment_ID) AS 'index' FROM wp_comments A WHERE comment_ID='$comment_id'", ARRAY_A); if (!count($result)){ return null; } return $result[0]['index']; }
そして、コメント一覧を表示する処理の直前でこの関数をコールして、取得したコメント番号をechoで表示させてやります。
(うちが使っているテーマでは「class-twentytwenty-walker-comment.php」というファイルの中でコメント一覧を表示してた)
$comment_index = get_comment_index($comment->comment_ID); echo $comment_index."."; printf( '<span class="fn">%1$s</span><span class="screen-reader-text says">%2$s</span>', esc_html( $comment_author ), __( 'says:', 'twentytwenty' ) );
これで名前の前に「.1」とか「.2」とかの番号が付くようになります!
以上!
【Wordpress】wp_usersで次に付与されるインクリメントIDを取得する!
wp_usersにユーザーを追加するときに、次に付与されるID(= last_insert_id + 1)を取得するコードだよ!
以下のようにすると次回のIDを取得できるからね!
global $wpdb; $table_name = $wpdb->prefix.'users'; $query = "SHOW TABLE STATUS LIKE '$table_name';"; $ret_array = $wpdb->get_row($query, ARRAY_A); echo $ret_array['Auto_increment'];;
例えば、以前にID(3)のユーザがいたんだけど削除されていて、今はID(1)とID(2)しかいない・・。
こんなときもちゃんと次回付与されるID(4)を返すお利口な処理だよ!
以上!
【PHP】指定した日時の週の月曜日を求める!
指定した日時の週を計算して、その週の月曜日の日時を返却するよ!
コードは下記みたいな感じ!
//例えば2020年03月10日をセット $ymd = "20200310"; $ymd_time = strtotime($ymd); $week_num = date("w",$ymd_time); if ($week_num == 0){ //日曜日だった場合 $monday = date('Ymd', strtotime("-6 day", $ymd_time)); }else{ $ymd_time = $ymd_time + 24*60*60; $monday = date('Ymd', strtotime("-{$week_num} day", $ymd_time)); } //月曜日の日時を出力 echo $monday;
2020年3月21日(土曜)を入力すると → 2020年3月16日(月曜)が返却される。
2020年3月22日(日曜)を入力すると → 2020年3月16日(月曜)が返却される。
2020年3月23日(月曜)を入力すると → 2020年3月23日(月曜)が返却される。
2020年3月24日(火曜)を入力すると → 2020年3月23日(月曜)が返却される。
みたいな挙動になるよ!
もっとうまい計算方法あるかもしれないけど、頭悪いからよく分からなかった・・。
でも計算できたらかこれでいい!
以上!
アマゾンRDSに踏み台からリモート接続できなくなってしまった!
WorkbenchというDB管理ソフトを使って、いつもssh踏み台経由でRDSサーバーに接続してるんだけども、先日アクセスを試したら急に接続不能になってしまっていた。
エラー文には「SSL connection error: protocol version mismatch」と表示されているけども、なんだか原因がよくわからない・・。
結論からいうと、下記のAWSのアナウンスのように、RDSサーバーの証明書の期限が切れてしまっているのが原因だった。
Amazon RDS のお客様: 2020 年 3 月 5 日までに SSL/TLS 証明書を更新してください | Amazon Web Services ブログ
WorkbenchのSSLオプション設定をよく見ると、「if available」のチェックが有効になってるんだけども、要するにこれをオフにすればいいんだよね。
ポチッとボタンを押して無効化することで、無事MySQLにアクセスできるようになりました。
めでたしめでたし。
【MySQL】Like検索の失敗は日付型が原因だった
とあるサイトでユーザーを検索する処理を作っていたんだけど、
MySQLで「Illegal mix of collations for operation ‘like’」とエラーが出て処理が失敗してしまった・・。
「ユーザー名」とか「地域」とか「生年月日」とかでLike検索をしていたんだけど、原因は「生年月日」の項目だった。
日付型のカラムは照合順序の項目を持たないので、like検索できないんだって・・。
しょうがないので生年月日はlike検索の対象から外すことにしました。
これでOK!
【JQuery】WordpressでAjaxの送受信がどうしても失敗してしまう・・。
【Wordpress】特定URLにマッチするときにベーシック認証をするよ!
ワードプレスで特定のURLが含まれているページにだけベーシック認証をかけるよ!
ワードプレスの「.htacccess」に以下のような文言を追加!
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress # 以下を追加! SetEnvIf Request_URI "/secret_page*" noauth AuthUserFile /var/www/mysite/.htpasswd AuthName "Input your ID and Password." AuthType Basic require valid-user Satisfy any Order Deny,Allow Deny from all allow from env=!noauth
これでURLに「/secret_page」が含まれてるページに、ベーシック認証がかかるよ!
上の例では、パスワードのファイル「.htpasswd」は、「/var/www/mysite/.htpasswd」という場所に置いておいてあるよ!
このファイルは別に好きなとこに置いていいからね!
パスワードの内容は以下のサービスとかで作ったやつを、コピペで張り付ければいいからね!
htpasswdファイル生成(作成)
以上!