フォーラムへの返信

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • フォーラム: 使い方全般
    返信が含まれるトピック: GETやPOSTデータをquery_posts()で扱う場合

    Seisuke Kuraishiさん、ありがとうございました。

    勝手に私がwp_unslash() をSQLインジェクション対策で利用すると読み違えてしまい、複雑な投稿をしてしまいました。申し訳ないです。

    今回は、GET値を基にWHERE句をquery_posts()で作成しようとし、GET値に対しSQLインジェクション対策を自前でする必要がなるのかと疑問になり投稿させていただきました。

    query_posts()に関しては、Seisuke Kuraishiさんのご指摘の通り、使用しないように書き換えを行う予定です。

    ありがとうございました。

    フォーラム: 使い方全般
    返信が含まれるトピック: GETやPOSTデータをquery_posts()で扱う場合

    Seisuke Kuraishiさん、ありがとうございます。

    > WordPress では $_GET、$_POST の値は WordPress 内部で先にエスケープ処理されていますので、扱う時は wp_unslash() しなくてはなりません。

    テーマ内で自前でテンプレートファイルを作成し、その中でGET・POTを扱う場合にはも、Wordpress内部で先にエスケープ処理してもらえるんでしょうか?

    外部変数(GET・POST情報など)からSQL文を作成する過程で、基本的には、esc_sql()、wp_unslash()を利用しサニタイズする必要があるが、WP_Queryオブジェクトを利用する場合には、エスケープ処理機能を有するのでesc_sql()の必要がなく、wp_unslash()のみで良いという解釈であっていますでしょうか?

    ===

    余談ですが、別のこちらが立てたトピックでSeisuke Kuraishiさんからご指摘いただいた「解決済みステータスへの変更」についてなのですが、本トピックもそうだったのですが、一人相撲で解決した(つもりになっている)ものについて、本当に解決しているのかどうかの判断をする自信がないものもあります。

    そのため、その場合、しばらくは誰しもが書き込める状態にしてお区ということも、運営的にはダメなのでしょうか?

    この余談部分は、後で削除します。

    フォーラム: 使い方全般
    返信が含まれるトピック: 検索結果のページのタイトルを変更する

    結果から言うと、if文を通ってくれていたようですが、if文内のremove_action()が想定の動作をしてくれていなかったようです。
    ※デフォルトのadd_action(‘wp_head’, ‘_wp_render_title_tag’, 1);がフック後に既に実行されてしまっているんでしょうか?

    と言うわけで発想を変えて、試してみましたところ、うまくいきました。

    function custom_render_title_tag()
    {
    	if(is_search() || is_page_template('sample.php'))
    	{
            	echo "<title>検索結果のタイトルを変更</title>\n";
    	} else {
    		add_action('wp_head', '_wp_render_title_tag', 10);  // 2 is better
    	}
    }
    remove_action('wp_head', '_wp_render_title_tag', 1);  // need just 1. (not 2 - 9)
    add_action('wp_head', 'custom_render_title_tag', 2);  // need less than 10. (1 - 9)

    今回急ぎということもあり、.orgの方でも英語で質問させてもらっていました。.org側ではこちらのリンクを貼っていたのですが、こちら側に.org側のリンクを貼れていませんでした。

    マルチ質問になってしまいましたことを、反省します。

    フォーラム: 使い方全般
    返信が含まれるトピック: 検索結果のページのタイトルを変更する

    前回のコードでは、フックのタイミングではなく、functions.phpの読み込みのタイミングでした。

    function custom_render_title_tag($query)
    {
    	if(is_search() || $query->is_search || is_page_template('search.php'))
    	{
    		remove_action('wp_head', '_wp_render_title_tag', 1);
            	echo "<title>検索結果のタイトルを変更</title>\n";
    	}
    }
    
    add_action('wp_head', 'custom_render_title_tag',1);

    どちらにしろ、うまくいかないのですが・・・。

    フォーラム: 使い方全般
    返信が含まれるトピック: GETやPOSTデータをquery_posts()で扱う場合

    query_posts()自体はエスケープ処理がされていないようでしたので、esc_sql()をGET情報の各パラメーターに対して当てることにしました。
    ※GET情報が配列の場合には配列の各要素を対象

    尚、query_posts()は非推奨とのことですので、後々はpre_get_postsフックを使うようにします。

    解決致しました。

    アップロードしていたフォルダー名に問題がありました。

    ダウンロードファイル(zipファイル)を解凍した際のフォルダーを
    そのままアップロードしており、”cfg-utility.js”へのパスが通らないこと
    が問題でした。

    /wp-content/plugins/custom-field-gui-utility/cfg-utility.js

    ●解凍後のフォルダー名
    tinybeans-wp-plugin-CustomFieldGuiUtility-be4e338

    ●修正後のフォルダー名
    custom-field-gui-utility

    以上、お騒がせ致しました。

6件の返信を表示中 - 1 - 6件目 (全6件中)