投稿者「mynote」のアーカイブ

WordPressのスパム対策として投稿者のURLをチェックする方法

WordPressを使っていると日常的にスパムコメントが送信されてきます。
そして、そのほとんどはサイト(コメント投稿者のURL)に何らかのURLが入力されています。

これを逆手に取って、サイト(コメント投稿者のURL)欄にURLが入力されていればブロックするというfancyなスパム対策を考えてみました。

※通常はCaptchaプラグインとかを使うのがおすすめですが、いろいろな物を導入したくないという場合用です。

手順

導入は手順簡単です。
functions.phpあたりに以下の内容を追加してください。

add_filter( 'pre_comment_approved', 'example_filter_handler', 99, 2 );

function example_filter_handler( $approved, $commentdata )
{
  if ( $commentdata['comment_author_url'] != "" ) {
    return new WP_Error();                                                                      
  }
  return $approved;                                                                             
}  

return new WP_Error();の部分をreturn 'spam';とすればスパムフォルダに、return 'trash';とすればごみ箱フォルダに分類することもできます。

一般のコメント投稿者向けに注意書き

スパムでない場合でもURL付きコメントを送信される場合もありますので、このfilterを導入する場合はひとこと注意書きを付けておいた方が無難かと思います。

もしくは、スタイルシートでURL欄を消してしまってもいいかと思います。

.comment-form-url { display: none }

リンク

pre_comment_approved | Hook | WordPress Developer Resources
https://developer.wordpress.org/reference/hooks/pre_comment_approved/

C#で数値を文字列に変換したり文字列を数値に変換したりする方法

C#で数値を文字列に変換したり文字列を数値に変換したりする方法のまとめ。

数値 ⇒ 文字列の変換

数値から文字列への変換にはToString()が使えます。

サンプルコード

using System;

public class Example1
{
  public static void Main()
  {
    int value1 = 123;
    float value2 = 456.78f;

    Console.WriteLine("value1 = " + value1.ToString());
    Console.WriteLine("value2 = " + value2.ToString());
  }
}

実行結果

value1 = 123
value2 = 456.78

文字列 ⇒ 数値の変換

文字列から数値への変換はParse()が使えます。
例外を発生させたくない場合はTryParse()も使えます。

サンプルコード

using System;

public class Example2
{
  public static void Main()
  {
    try
    {
      int value1 = int.Parse("123");
      float value2 = float.Parse("456.78");

      Console.WriteLine("value1 = " + value1);
      Console.WriteLine("value2 = " + value2);
    }
    catch (FormatException)
    {
    }
  }
}

実行結果

value1 = 123
value2 = 456.78

文字列 ⇒ 数値の変換(TryParse編)

サンプルコード

using System;

public class Example3
{
  public static void Main()
  {
    if (int.TryParse("123", out int value1))
    {
      Console.WriteLine("value1 = " + value1);
    }
    if (float.TryParse("456.78", out float value2))
    {
      Console.WriteLine("value2 = " + value2);
    }
  }
}

実行結果

value1 = 123
value2 = 456.78

リンク

How to convert a string to a number – C# Programming Guide | Microsoft Docs
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/types/how-to-convert-a-string-to-a-number

UnityのDefault Screen Width/Heightが反映されない時に試してみたいこと

Project SettingsのDefault Screen Width/Default Screen Heightを変更しても、画面サイズが変らないという場合はレジストリに以前の設定が残っている場合があるみたいです。

具体的には、レジストリComputer\HKEY_CURRENT_USER\Software\<Company Name>\<Product Name>\

  • Screenmanager Resolution Width_
  • Screenmanager Resolution Height_
  • Screenmanager Fullscreen mode_

から始まるキーを削除すれば、変更後のサイズで実行されるようになるみたいです。

<Company Name><Product Name>はProject Settingsで設定したCompany NameProduct Nameに読み替えてください。

ご注意

レジストリ操作を誤るとPCが起動しなくなってしまうなどの障害が発生する可能性があります。レジストリ操作を行う場合は必ずバックアップを作成の上、自己責任において実行してください。

リンク

Default Screen Dimensions Being Ignored After Build – Unity Forum
https://forum.unity.com/threads/default-screen-dimensions-being-ignored-after-build.500178/