WPセッションで変数を保存および受信する方法は?
-
-
答えが役に立った場合は、それを受け入れることを検討してください.»[誰かが私の質問に答えたらどうすればよいですか?](http://wordpress.stackexchange.com/help/someone-answers)«および/または»[投票が重要な理由](http://wordpress.stackexchange.com/help/why-vote)«、[wordpress.se]モデルの詳細については、[ヘルプ]をご覧ください.If the answer was helpful to you, then consider accepting it. See »[What should I do when someone answers my question?](http://wordpress.stackexchange.com/help/someone-answers)« and/or »[Why is voting important?](http://wordpress.stackexchange.com/help/why-vote)«, more information about the [wordpress.se] model is available at the [help].
- 0
- 2015-04-29
- Nicolai
-
以下のリンクがお役に立てばと思います.https://wordpress.stackexchange.com/questions/105453/getting-headers-already-sent-error-from-pluginI think below link will help you. https://wordpress.stackexchange.com/questions/105453/getting-headers-already-sent-error-from-plugin
- 0
- 2018-10-04
- Vivekanand Saraswati
-
6 回答
- 投票
-
- 2013-10-09
セッションはデフォルトでワードプレスで有効になっていません.phpセッションをアクティブにする場合は、
functions.php
の先頭にこれを追加してください:if (!session_id()) { session_start(); }
これで、
$_SESSION['your-var'] = 'your-value';
を使用してセッション変数を設定できます.セッションに関するPHPドキュメントをご覧ください.
更新:
2つ目の回答がありましたが、私の考えでは、これにも価値がありました.残念ながら、削除されたため、ここに情報を再度追加します.答えは、代替ソリューションとして@eamannによって作成されたプラグイン WPセッションマネージャーを参照することでした. .
プラグインについていくつか読んだのですが、これまで使用したことがありませんでした.これは、これまでのところ、PHPセッションを使用しているため、使用できないという問題が発生したことがないためです.これはステートメント/コメントですプラグインの作者自身によって、いくつかの可能な利点について見つけました. Sessions aren't enabled in wordpress by default, if you want to activate php sessions add this at the beginning of your
functions.php
:if (!session_id()) { session_start(); }
You now can use
$_SESSION['your-var'] = 'your-value';
to set a session variable. Take a look at the PHP documentation on sessions.
Update:
There was a second answer, which, in my mind, had a value too - unfortunately it got deleted, I'm re-adding the information here. The answer was referring to WP Session Manager a plugin written by @eamann as a alternative solution.
I read some things about the plugin, but never used it because - so far - I'm sticking with PHP sessions - never had the problem that I couldn't use them. This is a statement/comment by the plugin author himself I found about some possible advantages.-
ここでカスタムフィールド関連の質問をご覧ください:https://wordpress.stackexchange.com/questions/265852/set-and-unset-the-custom-field-value?may I ask you to have a look at a custom field related question here : https://wordpress.stackexchange.com/questions/265852/set-and-unset-the-custom-field-value ?
- 0
- 2017-05-04
- Istiaque Ahmed
-
- 2017-06-14
これをfunctions.phpに追加します
<?php function tatwerat_startSession() { if(!session_id()) { session_start(); } } add_action('init', 'tatwerat_startSession', 1);
add this at in your functions.php
<?php function tatwerat_startSession() { if(!session_id()) { session_start(); } } add_action('init', 'tatwerat_startSession', 1);
-
- 2018-08-05
WordPressのネイティブPHPセッションプラグインを使用してユーザー名セッションを設定する方法を説明します.このロジックを問題に適用できます.
これをfunctions.phpファイルに追加します
if (!session_id()) { session_start(); } if ( isset( $_POST['wp-submit'] ) ){ $_SESSION['username']=$_POST['log']; }
$ _ POST ['log']は、ワードプレスのログインフォームからユーザー名入力ボックスを参照しています.ユーザーがログインすると、ユーザー名は$ _SESSION ['username']に保存されます. あなたの場合、「log」を「car_color」のフォーム変数名に変更します.
後で他のphpファイルでユーザー名を参照する
$username=$_SESSION['username'];
I will explain how to set a username session with the Native PHP Sessions for WordPress plugin. You can apply this logic to your problem.
Add this to your functions.php file
if (!session_id()) { session_start(); } if ( isset( $_POST['wp-submit'] ) ){ $_SESSION['username']=$_POST['log']; }
$_POST['log'] is referencing the username input box from the wordpress login form. When a user logs in, the username is stored to $_SESSION['username']. In your case, you would change 'log' to the form variable names you have 'car_color'.
Reference the username later in some other php file by
$username=$_SESSION['username'];
-
- 2016-08-12
Wordpressには通常のセッションがないかもしれません...とにかく、Wordpressはユーザーの概念を知っています.関数
add_user_meta
を使用して、特定のユーザーに関連する情報を管理できます.update_user_meta
、get_user_meta
、およびdelete_user_meta
.この方法でJavaScriptに保存された情報が必要な場合は、必要なものを吐き出す小さなPHPスクリプトを記述し、それをAjaxで呼び出すことができます.
Maybe there are no usual sessions in Wordpress ... anyway, Wordpress knows the concept of users. You can manage information related to specific users with the the functions
add_user_meta
,update_user_meta
,get_user_meta
, anddelete_user_meta
.If you need the information saved in this way in JavaScript, you can write a little PHP script that vomits what you need, and call it with Ajax.
-
これは、ユーザーがログインしている場合にのみ有効です.This is only good if the user is logged in.
- 2
- 2016-11-10
- Tim Hallman
-
- 2016-12-05
AJAXリクエストを受信するPHPページで、$ _ SESSIONを次のように設定します.
$car_color = <user selected form input data>; $_SESSION['car_color'] = $car_color;
$ _SESSION変数にアクセスします
if(isset($_SESSION['car_color'])) { $value = $_SESSION['car_color']; } else { $value = 'Please select a car color.'; }
このチュートリアルでは、適切な設定とセッションの処分.
On the PHP page that receives the AJAX request, set $_SESSION like this.
$car_color = <user selected form input data>; $_SESSION['car_color'] = $car_color;
Access the $_SESSION variable
if(isset($_SESSION['car_color'])) { $value = $_SESSION['car_color']; } else { $value = 'Please select a car color.'; }
This tutorial goes into more detail about proper setup and disposal of sessions.
-
- 2020-08-31
最初にWordPressでセッションを開始する必要がありますが、そのようにWordPressでセッションを開始することはできません.
予期しない問題が発生する可能性があるため、セッションを開始する前に、プラグインがセッションを以前に開始したかどうかを確認する必要があります.したがって、そのための小さなアルゴリズムが必要です.
if (version_compare(PHP_VERSION, '7.0.0', '>=')) { if(function_exists('session_status') && session_status() == PHP_SESSION_NONE) { session_start(apply_filters( 'cf_geoplugin_php7_session_options', array( 'cache_limiter' => 'private_no_expire', 'read_and_close' => false ))); } } else if (version_compare(PHP_VERSION, '5.4.0', '>=') && version_compare(PHP_VERSION, '7.0.0', '<')) { if (function_exists('session_status') && session_status() == PHP_SESSION_NONE) { session_cache_limiter('private_no_expire'); session_start(); } } else { if(session_id() == '') { if(version_compare(PHP_VERSION, '4.0.0', '>=')){ session_cache_limiter('private_no_expire'); } session_start(); } }
ここに古いバージョンのPHPのサポートも追加しました.
You must first start a session in WordPress but you can't start a session in WordPress just like that.
Before starting sessions, you need to check if some plugin started the session earlier because you may have unexpected problems. So you need a little algorithm for that.
if (version_compare(PHP_VERSION, '7.0.0', '>=')) { if(function_exists('session_status') && session_status() == PHP_SESSION_NONE) { session_start(apply_filters( 'cf_geoplugin_php7_session_options', array( 'cache_limiter' => 'private_no_expire', 'read_and_close' => false ))); } } else if (version_compare(PHP_VERSION, '5.4.0', '>=') && version_compare(PHP_VERSION, '7.0.0', '<')) { if (function_exists('session_status') && session_status() == PHP_SESSION_NONE) { session_cache_limiter('private_no_expire'); session_start(); } } else { if(session_id() == '') { if(version_compare(PHP_VERSION, '4.0.0', '>=')){ session_cache_limiter('private_no_expire'); } session_start(); } }
I've also added support for older PHP versions here.
いくつかのチェックボックスと入力ボックスの選択ボックスを備えたフォームがあり、ユーザーがajax呼び出しを介して何を望んでいるかを示しています.問題は、ユーザーがアイテムをクリックして詳細ページが表示された後、前のページに戻ることにした場合、クリックして前の選択肢をもう一度選択する必要があることです.
詳細ページのボタンがクリックされたときにすべてのオプションをセッションに保存し、セッションに実際の情報を保存し、次にページに再度アクセスすると、セッションで値がチェックされて設定されるようにWPを作成したいと思います.見つかった場合.
それはWPで行うことができますか?
はいの場合、どのように?
それを単純化しすぎて、フォームに次のようなものがあるとしましょう:
フォームで送信ボタンを使用していません.入力の変更時にAJAXを介して処理されます.
そして、ajaxを介して取得した結果には、詳細ページへのリンクがあります:
ブラウザのボタンを再表示/再読み込み/戻るときに、セッションに値を保存して呼び出す方法はありますか?
セッションに保存されているものを読み取って、「Javascript」を介して使用できるようにする必要があります.すでにうまく機能しているajaxを介して検索機能をトリガーします.
保存する必要があります(おそらく、詳細ボタンでhrefの$ linkに移動し、セッション変数を読み取って送信する前に)