লগ-ইন না করা ব্যবহারকারীদের একটি নির্দিষ্ট পৃষ্ঠায় কীভাবে পুনর্নির্দেশ করবেন?


16

লগ-অন থাকা ব্যবহারকারীদের কোনও নির্দিষ্ট পৃষ্ঠা / ইউআরএলের অনুরোধ করে অন্য পৃষ্ঠায় / ইউআরএলকে কীভাবে পুনর্নির্দেশ করবেন এবং "কেবল সদস্যদের জন্য" এর মতো একটি বার্তা প্রদর্শন করবেন। Is_user_logged_in () ফাংশনটি ব্যবহার করে আমি কোডে এটি বেশ সহজ জানি তবে এটি কীভাবে কোড করতে হয় তা আমি জানি না কারণ আমি ওয়ার্ডপ্রেসের একজন নবাগত। কোডটি রাখার জন্য আমাকে ফাইলটি বলার যত্ন করুন।

উত্তর:


30

এখানে আপনার 2 টি উদাহরণ রয়েছে যা আপনার নির্দিষ্ট প্রয়োজনের জন্য এটি কার্যকর করার জন্য আপনাকে সামান্য পরিবর্তন করতে হবে।

add_action( 'admin_init', 'redirect_non_logged_users_to_specific_page' );

function redirect_non_logged_users_to_specific_page() {

if ( !is_user_logged_in() && is_page('add page slug or ID here') && $_SERVER['PHP_SELF'] != '/wp-admin/admin-ajax.php' ) {

wp_redirect( 'http://www.example.dev/page/' ); 
    exit;
   }
}

এটি আপনার চাইল্ড থিম ফাংশন ফাইলগুলিতে রাখুন, পৃষ্ঠার আইডি বা স্লাগ পরিবর্তন করুন এবং ইউআরএল পুনর্নির্দেশ করুন।

আপনি এই জাতীয় কোড ব্যবহার করতে পারেন:

add_action( 'template_redirect', 'redirect_to_specific_page' );

function redirect_to_specific_page() {

if ( is_page('slug') && ! is_user_logged_in() ) {

wp_redirect( 'http://www.example.dev/your-page/', 301 ); 
  exit;
    }
}

আপনি বার্তাটি সরাসরি পৃষ্ঠায় যুক্ত করতে পারেন বা আপনি যদি লগ-ইন না করা সমস্ত ব্যবহারকারীদের জন্য বার্তাটি প্রদর্শন করতে চান তবে কোডটিতে যুক্ত করুন

http://codex.wordpress.org/Function_Reference/wp_redirect


আপনাকে উত্তর দেওয়ার জন্য ধন্যবাদ আমি এটি পছন্দ করেছিলাম add_action('template_redirect', 'redirect_to_specific_page'); function redirect_to_specific_page() { if ( is_page('http://mydomain.com/participate') && !is_user_logged_in()) { wp_redirect('http://mydomain.com/login', 301); exit; } }কিন্তু এটি কাজ করছে না
user3187719

পৃষ্ঠার আইডি ব্যবহার করুন বা এখানে স্লাগ করুন, url mydomain.com/participate codex.wordpress.org/
ব্র্যাড ডালটন

is_page ('অংশগ্রহন করুন')
ব্র্যাড ডালটন

9

এটি আরও ভাল হবে:

if ( !is_user_logged_in() ) {
    auth_redirect();
} 

// continue as normal for authenticated users

এটি যা করে তা হ'ল লগইন পৃষ্ঠায় ব্যবহারকারীকে পুনর্নির্দেশ করা। একবার লগ ইন করা হলে, ব্যবহারকারীরা সুরক্ষিত পৃষ্ঠায় ফিরে যেতে হবে তারা প্রাথমিকভাবে অ্যাক্সেস করার চেষ্টা করেছিল।

ডকুমেন্টেশন এখানে:

https://codex.wordpress.org/Function_Reference/auth_redirect


4

আপনি যদি আমাদের কী এবং আপনি কোথায় এটি প্রদর্শন করতে চান তা না বললে কীভাবে এটি স্থাপন করা যায় তা আমরা কীভাবে বলতে পারি? পুরো পোস্ট? পেজ? পৃষ্ঠাগুলির কাস্টম অংশ? দুঃখিত ... আমার ধারণা আমার স্ফটিক বলটি আজ খুব একটা কার্যকর নয়।

যেহেতু আপনি, এবং আমি আপনাকে উদ্ধৃত করছি: "উত্তর দেওয়ার জন্য" ওয়ার্ডপ্রেসের নতুন "আপনার উত্তরটি শেখার পরিবর্তে শেখা উচিত।

হিসাবে যেখানে আপনি রেফারেন্স 1 টি লিঙ্ক পড়া উচিত। এটি আপনাকে জানাবে যে কোন ফাইলটি এটিতে রাখা দরকার।

হিসাবে কিভাবে এটা করতে আপনাকে প্রথমে রেফারেন্স লিংক 2 এবং 3 পড়া উচিত।

সামগ্রিকভাবে এটি দেখতে কিছুটা দেখতে হবে:

if ( is_user_logged_in() ) {
    the_content();
} else {
    echo 'For members only';
}

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

  1. টেমপ্লেট হায়ারার্কি
  2. শর্তসাপেক্ষ ট্যাগ্স
  3. লুপ

নীচের মন্তব্যের পরে যুক্ত করা হয়েছে:

ব্যবহারের পুনর্নির্দেশ করতে headerসঙ্গে wp_login_url- আবার, চেক রেফারেন্স 1 এবং নিচের 2:

if ( is_user_logged_in() ) {
    the_content();
} else {
    header('Location: ' . wp_login_url());
}

রেফারেন্স:

  1. শিরোনাম - পিএইচপি
  2. wp_login_url

প্রকৃতপক্ষে আমি ওয়ার্ডপ্রেসে ফ্যান্টেশনটি জানি না যা অনুরোধ করা ইউআরএল বা পারমিলিংক দেয়। এবং অসম্পূর্ণ বার্তাগুলি সম্পর্কে, এটি ছেড়ে দিন, আমি যখন লগ না করে নির্দিষ্ট URL এর জন্য অনুরোধ করি তখন কেবল তাদের পুনর্নির্দেশ করতে চাই।
ব্যবহারকারী3187719

আমি কি $ পেজানো দিয়ে এটি করতে পারি?
ব্যবহারকারী3187719

@ ব্যবহারকারী3187719 আমার মূল উত্তরটি সম্পাদনা করেছে এবং পুনর্নির্দেশের সমাধান যোগ করেছে। পুনশ্চ. $pagenow? আপনি তোলা দিয়ে একটি মাছি মারার চেষ্টা করছেন এটি নিশ্চিতভাবে কাজ করবে তবে এত জটিল কেন? সহজবোধ্য রাখো. পিএস 2: পিএইচপি এবং ডাব্লুপি কোডেক্স শিখুন।
বোরেক

4

আপনি কোনও নির্দিষ্ট পৃষ্ঠায় পুনর্নির্দেশ করতে পারবেন না, তবে লগ-ইন না হওয়া প্রতিটি ব্যবহারকারী লগ-ইন স্ক্রিনে পুনঃনির্দেশিত হবে।

<?php auth_redirect(); ?>

ওয়ার্ডপ্রেস রেফারেন্স: auth_redirect()

শুধু অন্য একটি সমাধান উল্লেখ করতে।

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