رفتن به مطلب

مشکل کنترل دسترسی کاربران به نوشته


پست های پیشنهاد شده

سلام خدمت دوستان،

با توجه به نیازم در قالب پست سفارشی custom post type ساختم که در سایت تمام نوشته های آن توسط مدیر ارشد ایجاد شده و نمایش آن به صورت عمومی میباشد ، اما امکان ویرایش هر نوشته به یک کاربر ( و نه وظیفه ((role)) ! ) اختصاص دارد که در قسمت مدیریت هر کاربر به طور اختصاصی باید فقط نوشته خودش رو ببینید و بتواند آن را ویرایش کند.

کاربران دارای نقش ویرایشگر میباشند تا بالاترین سطوح دسترسی رو داشته باشند و بتوانند دسته جدید ایجاد کنند...

با توجه به این نیاز از افزونه user specific content استفاده کردم اما در افزونه تنها قابلیت ایجاد دسترسی به کاربران در بخش های post و page پیشفرض وردپرس بود که در آن خبری از custom post بنده نبود!

با پیگیری بیشتر در سایت خود نویسنده افزونه سوال و جواب در این مورد رو پیدا کردم اما بعد از استفاده از کد با پیغام خطای syntax error, unexpected مواجه شدم.

صاحب افزونه برای اضافه کردن امکانات افزونه ، به پست سفارشی custom post type کد زیر را ارائه کردند :

http://en.bainternet...-content-plugin

لطفا روش استفاده صحیح از این هک رو در افزونه user specific content بفرمایید تا بتونم در کار جلو برم . با تشکر از وقتی که گذاشتید

add_action('init','add_metabox_to_my_custom_post_type',10);
function add_metabox_to_my_custom_post_type(){
$post_type = 'CHANGE_THIS_TO_YOUR_POST_TYPE';
global $U_S_C_i;
add_meta_box(
'User_specific_content',
__( 'User specific content box'),
array($U_S_C_i,'User_specific_content_box_inner'),
$post_type
);
}

ویرایش شده توسط Morteza
لینک به ارسال

متاسفانه بعد از کپی در function.php با این ارور مواجه میشم و سایت از دسترس خارج میشود:

Fatal error: Call to undefined function add_meta_box() in /Applications/XAMPP/xamppfiles/htdocs/wordpress/wp-content/themes/mymahd/functions.php on line 1150

لطفا بفرمایید برای داشتن این قابلیت در قالب چه کار کنم؟ :(

لینک به ارسال

بجای CHANGE_THIS_TO_YOUR_POST_TYPE هم باید اسم پست تایپتون رو بگذارید

بنده این کار رو هم کردم هم در فایل function.php و هم در فایل خود پلاگین اما بعد از ذخیره کد به ارور میخورم...

فکر میکنم مشکل از قسمت add meta box هست ، زیرا زمانی که این بخش را پاک میکنم پیغام خطایی دریافت نمیکنم اما این قسمت هم اضافه نشده است.

add_meta_box(

'User_specific_content',

__( 'User specific content box'),

array($U_S_C_i,'User_specific_content_box_inner'),

$post_type


);

ویرایش شده توسط Morteza
لینک به ارسال

add_meta_box تابع وردپرس هست و خطایی که داده شده یک خطای انحرافی هست.

شما دیباگ وردپرس رو فعال کنید. ببینید چه خطاهای دیگه ای میگیرید.

همچنین فایل error_log رو در روت سرور پیدا کنید و اینجا پیوست کنید.

تابعی که به شما داده شده درست هست و شما باید در فایل function.php پوسته تون و طبق تغییری که جناب فخار فرمودن قرار بدید.

اگر بازهم خطا گرفتید روی یک پوسته پیش فرض تست کنید.

اگر بازهم خطا تکرار شد یک وردپرس خام نصب و تست کنید.

لینک به ارسال

بهتره نمونه این صفحه رو بررسی کنید

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

تابع نباید در اکشن init اجرا بشه

لینک به ارسال

متاسفانه بعد از امتحان کردن همین مراحل روی ۳ قالب دیگر در وب سایت های آنلاین مختلف باز هم با همین ارور مواجه شدم!

این کاستوم پست من هست :


function et_vertex_register_posttypes() {
$labels = array(
'name' => _x( 'Projects', 'project type general name', 'Vertex' ),
'singular_name' => _x( 'Project', 'project type singular name', 'Vertex' ),
'add_new' => _x( 'Add New', 'project item', 'Vertex' ),
'add_new_item' => __( 'Add New Project', 'Vertex' ),
'edit_item' => __( 'Edit Project', 'Vertex' ),
'new_item' => __( 'New Project', 'Vertex' ),
'all_items' => __( 'All Projects', 'Vertex' ),
'view_item' => __( 'View Project', 'Vertex' ),
'search_items' => __( 'Search Projects', 'Vertex' ),
'not_found' => __( 'Nothing found', 'Vertex' ),
'not_found_in_trash' => __( 'Nothing found in Trash', 'Vertex' ),
'parent_item_colon' => '',
);

و کدی که تغییر دادم و به آخرین خط function.php انتقال دادم به این صورت است :


add_action('init','add_metabox_to_my_custom_post_type',10);
function add_metabox_to_my_custom_post_type(){
$post_type = 'Projects';
global $U_S_C_i;
add_meta_box(
'User_specific_content',
__( 'User specific content box'),
array($U_S_C_i,'User_specific_content_box_inner'),
$post_type
);
}

جناب پارسا ممنونم از راهنماییتون اما این کد از خود صاحب افزونه برای همین منظور گرفته شده!

http://en.bainternet...n/#comment-3309

آیا امکان دارد بنده در اون تغییر ایجاد کنم؟

ویرایش شده توسط naserr
لینک به ارسال

شما آزاد هستید هر تغییری برای حل مشکلتون در افزونه بدهید

نمونه مستندات رو ببینید

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...