ওয়ার্ডপ্রেসে আমার নিজস্ব কাস্টম সেশন মানটি কীভাবে ব্যবহার করবেন?


17

আমি কীভাবে ওয়ার্ডপ্রেসে নিজের (কাস্টম) সেশন মানটি ব্যবহার করতে পারি?
উদাহরণ স্বরূপ:$_SESSION['myname']="4lvin"

আমি session_start()নিম্নলিখিত হিসাবে আমার প্রয়োজন সমস্ত পৃষ্ঠা ইতিমধ্যে sertedোকানো হয়েছে।

<?php
session_start();
$_SESSION['myname'] = "4lvin";
?>

তবে বিশ্বব্যাপী কাজ করছে না।
শুধু স্ব পৃষ্ঠায় কাজ করছি।
এটি অন্য পৃষ্ঠাগুলি থেকে (একই যুক্তি ব্যবহার করে) বিশ্বব্যাপী কল-সক্ষম নয়।


আপনি কি দয়া করে আপনার প্রশ্নের ওয়ার্ডপ্রেস-নির্দিষ্ট প্রকৃতিটি পরিষ্কার করতে পারেন ?
চিপ বেনেট

1
" ওয়ার্ডপ্রেস-নির্দিষ্ট প্রকৃতি কী? " - এর অর্থ, আপনার প্রশ্নটি কীভাবে ওয়ার্ডপ্রেসের সাথে সম্পর্কিত ?
চিপ বেনেট

1
আমি সেশন কুকিজ সম্পর্কে একটি প্রশ্ন দেখতে পাচ্ছি । আমি ওয়ার্ডপ্রেসের সাথে সুনির্দিষ্ট কিছু দেখতে পাচ্ছি না , এ কারণেই আমি স্পষ্টতা চেয়েছিলাম।
চিপ বেনেট

2
না। সেশন এবং কুকিজ হ'ল সাধারণ ইন্টারনেট / ওয়েব-ব্রাউজারের বিষয় যার দিকে ওয়ার্ডপ্রেস পুরোপুরি অজ্ঞেয়।
চিপ বেনেট

5
হ্যাঁ, সেশন এবং কুকিজগুলি সাধারণ বিষয়, তবে এটি ওয়ার্ডপ্রেসের সাথে সেশনগুলি তৈরি করার আরও প্রশ্ন ... এবং যেহেতু ডাব্লুপি নিজেই সেশনগুলি ব্যবহার করে না, এখানে এটি প্রাসঙ্গিক।
EAMAN

উত্তর:


13

সম্পাদনা করুন: "প্লাগইন নীচে অন্য কোথাও উপলভ্য নয়, সুতরাং প্লাগইন ইনস্টল করুন: ওয়ার্ডপ্রেস সেশন প্লাগইন ব্যবহার করুন "

কোডআইগনিটার সেশন ক্লাস থেকে অভিযোজিত একটি ভাল ওয়ার্ডপ্রেস প্লাগইন রয়েছে: ডাব্লুপি সেশনস প্লাগইন

আপনি যখন প্লাগইনটি সক্রিয় করবেন তখন আপনি $sessionআপনার থিমের যে কোনও জায়গা থেকে অবজেক্টটি ব্যবহার করতে শুরু করতে পারেন ( $sessionযতক্ষণ না বিশ্বব্যাপী অবজেক্ট)। উদাহরণস্বরূপ, header.phpফাইলটিতে $ সেশন অবজেক্টটি ব্যবহার করতে , কেবল এই কোডটি যুক্ত করুন:

global $session;

আপনি যদি একটি প্লাগইন বিকাশকারী হন এবং আপনি এই প্লাগইনটি আপনার সাথে খাপ খাইতে চান তবে আপনি প্যাকেজে স্ট্যান্ড স্টোন সংস্করণটিও খুঁজে পেতে পারেন । প্লাগইনটির ডকুমেন্টেশন আপনার প্রকল্পের সাথে কীভাবে মানিয়ে নেবে সে সম্পর্কে প্লাগইন বিকাশকারীদের আরও তথ্য দেয়।

থিম এবং প্লাগইন বিকাশকারী উভয়ের জন্য এখানে কিছু কার্যকর ফাংশন রয়েছে।

আপনি এর মতো সেশন ডেটা যুক্ত করতে পারেন :

// One value
$session->set_userdata( 'username', 'john' );

// Passing array
$array = array(
    'username' => 'john',
    'email'    => 'john@gmail.com'
);

$session->set_userdata( $array );

সেশন ডেটা পুনরুদ্ধার করতে :

$session->userdata( 'username' );

করার সব পেতে অধিবেশন ডেটা:

$session->all_userdata(); // returns array

সেশন থেকে একটি আইটেম সরানোর জন্য :

$session->unset_userdata( 'username' );

করার একাধিক আইটেম অপসারণ সেশন থেকে:

$array = array(
    'username' => '',
    'email'    => ''
);
$session->unset_userdata( $array );

আপনি ফ্ল্যাশডেটাও ব্যবহার করতে পারেন যা সেশন ডেটা যা কেবলমাত্র পরবর্তী সার্ভারের অনুরোধের জন্য উপলব্ধ থাকবে, তারপরে স্বয়ংক্রিয়ভাবে সাফ হয়ে যাবে। আপনি এগুলি তথ্যমূলক বা স্থিতি বার্তাগুলির জন্য ব্যবহার করার সময় এগুলি খুব কার্যকর হতে পারে (উদাঃ "পণ্যটি মুছে ফেলা হয়েছে")।

// Add Flashdata
$session->set_flashdata( 'item', 'value' );

// Retrieve Flashdata
$session->flashdata( 'item' );

// Preserving flashdata 
// (if you need to preserve flashdata through an additional request, 
// you can use this function):
$session->keep_flashdata( 'item' );

সেশনটি ধ্বংস করতে:

$session->sess_destroy();

প্লাগইন শর্টকোডগুলিও সমর্থন করে । আপনি আপনার পোস্ট বা পৃষ্ঠাগুলিতে যে কোনও সেশন ডেটা মুদ্রণ করতে পারেন:

[session key="username"]

দ্বিতীয় কীতে পৌঁছানোর জন্য:

[session key="user_data" sec_key="display_name"]

আমি আশা করি এটি কারওর জন্য সহায়তা করে।


1
ডাব্লুপি সেশনস প্লাগইন কি নেই! ??
কিরেন শিভা

1
হ্যাঁ, আপনি এটি ব্যবহার করতে চাইবেন: wordpress.org/plugins/wp-session-manager (এটি অনেক ভাল এবং স্থির)।
beytarovski


আমরা কেন ওয়ার্ডপ্রেসে পিএইচপি ডিফল্ট সেশন কার্যকারিতা ব্যবহার করতে পারি না? এই সমাধানটি একটি প্লাগইনে নির্ভরতা তৈরি করে।
অমৃত

@ আম্রিতপাল কারণ সমস্ত পিএইচপি / অ্যাপাচি সার্ভার সমর্থন করে সেশন নয়। আপনি যদি ডাব্লুপি এর মতো একটি পাবলিক সফ্টওয়্যার / প্লাগইন তৈরি করতে চান তবে আপনাকে এটি সম্পর্কে ভাবতে হবে। যদি এটির ব্যক্তিগত প্রকল্প যেখানে আপনি সার্ভার সম্পাদনা করতে সক্ষম হন তবে এটি কোনও সমস্যা নয়।
beytarovski

8

ওয়ার্ডপ্রেস সেশন ব্যবহার করে না, এজন্য আপনার সেশন ভেরিয়েবলগুলি কাজ করছে না।

বস্তুত, যদি নির্দিষ্ট ভেরিয়েবল সংজ্ঞায়িত করা হয়, ওয়ার্ডপ্রেস আসলে ধ্বংস করবে $_SESSIONনিজেই আড়ম্বরহীন রাখার

তবে আপনি যদি সত্যিই সেশন ব্যবহার করতে চান তবে session_start()আপনার wp-config.phpফাইলের শুরুতে যুক্ত করার চেষ্টা করুন। এটি যখনই ডাব্লুপি শুরু করবে তখন সেশনগুলি শুরু হবে (আশা করি), সুতরাং আপনি আপনার $_SESSIONভেরিয়েবলগুলি সিস্টেমে অন্য কোথাও সেট করতে এবং পড়তে সক্ষম হবেন ।


আমি দেখেছি যে ওয়ার্ডপ্রেস কিছু লগইন ডেটা সঞ্চয় করতে কুকিজ ব্যবহার করে। আমি যখন CO _COOKIE অ্যারে প্রিন্ট করি তখন আমি কিছু ডেটা দেখতে পেতাম। আমি সেই তথ্যটি ম্যানুয়ালি সেট করতে চাই। আরো এখানে তথ্য: stackoverflow.com/questions/21595900/...
shasi kanth

1
এছাড়াও, সেশন শুরু করার জন্য, wp-config.php ফাইলটি সংশোধন করার পরামর্শ দেওয়া হয়? আমরা যদি পরে ওয়ার্ডপ্রেস আপডেট করি তবে wp-config.php ফাইলটিও কি আপডেট হয়ে যায়?
শশী কাঁথ

টিউটোরিয়াল যে এই আরো আলোচনা করা silvermapleweb.com/using-the-php-session-in-wordpress
নিউ এভারেস্ট

1
@ শশীকান্ত নং, wp-cofnig.phpআপডেটগুলি ছোঁয়া হয়নি।
টি.টোডা

1
@ শশীকান্ত wp-config.phpআপডেট হবে না, অন্যথায় আপনি আপনাকে ডিবি সংযোগ এবং ম্যানুয়ালি সেট করা অন্যান্য পরামিতিগুলি হারাতে পারেন।
এরেনর পাজ

-5

ওয়ার্ডপ্রেস এটি সমর্থন করে

আপনাকে শীর্ষে নীচের লাইনগুলি যুক্ত করতে হবেfunctions.php

if ( ! session_id() ) {
    session_start();
}

10
কেন আপনি দুবার অধিবেশন শুরু করবেন?
কায়সার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.