ali56

ساخت پنل کاریری برای کاربران سایت

19 پست در این موضوع قرار دارد

سلام دوستان

تو این تاپیک با کمک آقای ایمان فخار یه صفحه ساختم برای کاربرای سایت برای مشاهده وضعییت مطالب ارسالی خودشون

البته عنوان تاپیک چیز دیگه ای بود چون بحث منحرف شد این تاپیک را زدم

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


<?php
global $user_ID, $user_identity, $user_level, $user_email, $user_login, $user_info, $user_first_name, $user_last_name, $user_url;
if (is_user_logged_in()) : ?>
<table style="width: 100%">
<caption>وضعیت ارسال های شما </caption>
<tr>
<th style="width: 400px">نام مطلب</th>
<th style="width: 100px">وضعیت</th>
<th style="width: 80px">تاریخ </th>
<th>توضیحات </th>
</tr>
<?php $recent = new WP_Query("post_status=publish, trash, future, pending&author=$user_ID&showposts=5");if ($recent->have_posts()) :?>
<?php while($recent->have_posts()) : $recent->the_post();?>
<tr>
<?php
if ( get_post_status ( $ID ) == 'publish' )
{?>
<td class="pub"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></td>
<td class="pub"> منتشر شده</td>
<td class="pub"><?php the_date('y/m/d');?></td>
<td class="pub"><?php if (current_user_can('edit_post', $post->ID)): ?><?php edit_post_link('ویرایش', ''); ?><?php endif; ?> </td>
<?php }
else
if ( get_post_status ( $ID ) == 'pending' )
{?>
<td class="pen"><?php the_title(); ?></td>
<td class="pen">در انتظار بررسی</td>
<td class="pen"><?php the_date('y/m/d');?></td>
<td class="pen"><?php if (current_user_can('edit_post', $post->ID)): ?><?php edit_post_link('ویرایش', ''); ?><?php endif; ?> </td>
<?php }
else
if ( get_post_status ( $ID ) == 'future' )
{?>
<td class="fut"><?php the_title(); ?></td>
<td class="fut">زمانبندی برای نشر</td>
<td class="fut"><?php the_date('y/m/d');?></td>
<td class="fut"><?php if (current_user_can('edit_post', $post->ID)): ?><?php edit_post_link('ویرایش', ''); ?><?php endif; ?></td>
<?php }
else
{?>
<td class="tra"><?php the_title(); ?></td>
<td class="tra">حذف شده</td>
<td class="tra"><?php the_date('y/m/d');?></td>
<td class="tra"><?php $tozih = get_post_meta($post->ID, 'tozih', true); ?><?php echo $tozih; ?></td>
<?php }
?>
</tr>
<?php endwhile;?>
<?php endif;?>
<?php wp_reset_query(); ?>
<tr>
<td style="width: 400px">نام مطلب</td>
<td style="width: 100px">تاریخ </td>
<td style="width: 80px">وضعیت </td>
<td>توضیحات </td>
</tr>
</table>
<style type="text/css">
.pub {
background:#CCFFCC
}
.pen {
background:#CCCCFF
}
.fut {
background:#66CCFF
}
.tra {
background:#FFCCFF
}
</style>
<?php else : ?>
<h2>برای مشاهده این صفحه باید وارد حساب کاربری خود شده باشید</h2>
<?php wp_login_form(); ?>

<?php endif;?>

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

باژنراتور وردپرس یه کد وضعیت تعریف کردم ببینید درسته؟

واین که این کد را در فانکشن قالب اضافه کنم یا فانکشن وردپرس؟


// Register Custom Status
function custom_post_status() {
$args = array(
'label' => _x( 'void', 'Status General Name', 'text_domain' ),
'label_count' => _n_noop( 'Void (%s)', 'Void (%s)', 'text_domain' ),
'public' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'exclude_from_search' => false,
);
register_post_status( 'void', $args );
}
// Hook into the 'init' action
add_action( 'init', 'custom_post_status', 0 );

0

به اشتراک گذاری این پست


لینک به پست

کدتون درسته و به فانکشن قالبتون باید اضافه بشه

فقط اگر می خواهید در پنل کاربریتون نمایشش بدید مقدار public را از false به true تغییر بدید

3

به اشتراک گذاری این پست


لینک به پست

کدتون درسته و به فانکشن قالبتون باید اضافه بشه

فقط اگر می خواهید در پنل کاربریتون نمایشش بدید مقدار public را از false به true تغییر بدید

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

یعنی تو قسمت وضعیت فقط/ برای بازبینی / منتشر شده و پیش نویس قرار داره

0

به اشتراک گذاری این پست


لینک به پست
کدتون درسته و به فانکشن قالبتون باید اضافه بشه فقط اگر می خواهید در پنل کاربریتون نمایشش بدید مقدار public را از false به true تغییر بدید

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

اگر لطف کنین این عکس و ببیند من کد را درست کردم ولی اینجا نمایش داده نمیشه

post-1387-0-49594800-1373124842_thumb.jp

0

به اشتراک گذاری این پست


لینک به پست

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

اگر لطف کنین این عکس و ببیند من کد را درست کردم ولی اینجا نمایش داده نمیشه

برای چیزی که می خواهیدذ باید moderation_status را ریجستری کنید این فایل را دانلود کنید و اینکلود کنید روی فانکشنز قالب ببینید جواب می ده یا نه

https://core.trac.wordpress.org/attachment/ticket/12706/custom-status-helper_1.0.zip

3

به اشتراک گذاری این پست


لینک به پست

این افزونه مشکلتون رو برطرف می کنه

http://wordpress.org/plugins/custom-status/

post-336-0-71978100-1373197788_thumb.gif

البته پستهایی که قبلا منتشر شده اند رو نمی تونید به صورت یکجا به این وضعیت برگردونید

3

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

برای چیزی که می خواهیدذ باید moderation_status را ریجستری کنید این فایل را دانلود کنید و اینکلود کنید روی فانکشنز قالب ببینید جواب می ده یا نه

https://core.trac.wo...-helper_1.0.zip

فایل را در پوشه includes آپلود کردم و با این کد فراخوانی کردم


include_once (TEMPLATEPATH . '/includes/custom-status-helper.php');

ولی چیزی اضافه نشد

ولی افزونه کاملا چیزی هست که میخوام

دستتون درد نکنه

ویرایش شده در توسط ali56
1

به اشتراک گذاری این پست


لینک به پست

این افزونه مشکلتون رو برطرف می کنه

http://wordpress.org.../custom-status/

post-336-0-71978100-1373197788_thumb.gif

البته پستهایی که قبلا منتشر شده اند رو نمی تونید به صورت یکجا به این وضعیت برگردونید

آقای فخار صفحه پنل کاربری تموم شد

حالامن یه صفحه دیگه هم برای ویرایش درست کردم که کاربر بعد از کلیک روی میرایش به اون صفحه میره و میتونه مطلبشو ویرایش کنه

آیا میشه کاری کرد که بعد از ویرایش وضعییت از حالت انتشار خارج بشه و به یکی از وضعییتهای در انتضار یا پیشنویس تغییر کنه ؟

ممنون

0

به اشتراک گذاری این پست


لینک به پست

آقای فخار عزیز یا دوستان دیگه

اگه در این مورد میتونن راهنمایی بفرمایید ممنون میشم

0

به اشتراک گذاری این پست


لینک به پست

صفحه را با چه کدی ایجاد کردید کد را بگذارید

1

به اشتراک گذاری این پست


لینک به پست

صفحه را با چه کدی ایجاد کردید کد را بگذارید

آقا ایمان کدها طولانی بود برای همین پیوست کردم

الان این صفحه کاملا درست عمل میکنه و کاربر میتونه پست خودشو ویرایش کنه فقط کد تغییر وضعییت را اگر لطف کنید البته با توجه به کدهای این صفحه راهنمایی کنید

ممنون

edit-post.php

0

به اشتراک گذاری این پست


لینک به پست

میدونم مبتدی مثل من زیاده و تعداد سوالات بالا هست و کاربر حرفه ای به نسبت کم

آقا ایمان عزیز هم سرشون واقعا شلوغه

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

0

به اشتراک گذاری این پست


لینک به پست

تعریف publish در این فایل انجام نشده احتمالا در functions.php باید تعریف شده باشه که submit شدن فرم باعث publish بشه در هرجا چنین تعریفی هست publish را به pending تبدیل کنید

این نمونه کد تعریفشه


if ( isset( $_POST['submit'] ) && current_user_can( 'publish_posts' ) )
$post['post_status'] = 'publish';

که باید بشه


if ( isset( $_POST['submit'] ) && current_user_can( 'publish_posts' ) )
$post['post_status'] = 'pending';

3

به اشتراک گذاری این پست


لینک به پست

اگر نبود کد دوم را قبل از


if((!empty($_POST['submit'])) && current_user_can('edit_posts')) {

در خط 26 بگذارید و تست بگیرید

2

به اشتراک گذاری این پست


لینک به پست

تعریف publish در این فایل انجام نشده احتمالا در functions.php باید تعریف شده باشه که submit شدن فرم باعث publish بشه در هرجا چنین تعریفی هست publish را به pending تبدیل کنید

این نمونه کد تعریفشه


if ( isset( $_POST['submit'] ) && current_user_can( 'publish_posts' ) )
$post['post_status'] = 'publish';

که باید بشه


if ( isset( $_POST['submit'] ) && current_user_can( 'publish_posts' ) )
$post['post_status'] = 'pending';

publish را در تمام پوسته سرچ کردم ولی چنین کدی که مربوط به SUBMIT بشه پیدا نکردم

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


if ( isset( $_POST['submit'] ) && current_user_can( 'publish_posts' ) )
$post['post_status'] = 'pending';

if((!empty($_POST['submit'])) && current_user_can('edit_posts')) {

// delete any images checked
if (!empty($_POST['image']))
cp_delete_image();
// update the image alt text
if (!empty($_POST['attachments']))
cp_update_alt_text();

ولی این ارور را داد

Fatal error: Cannot use object of type WP_Post as array

تو خط 27

یعنی این


$post['post_status'] = 'pending';

0

به اشتراک گذاری این پست


لینک به پست

این رو هم قبلش اضافه کنید اگر باز هم ارور دئاد بگید


$post = get_default_post_to_edit();
$post = get_object_vars($post);

1

به اشتراک گذاری این پست


لینک به پست

این رو هم قبلش اضافه کنید اگر باز هم ارور دئاد بگید


$post = get_default_post_to_edit();
$post = get_object_vars($post);

بعد از اضافه کردن موقع ورود به صفحه ادیت این ارور داد

Fatal error: Call to undefined function get_default_post_to_edit()

اینو حذف کردم


$post = get_default_post_to_edit();

ارور برطرف شد به روز رسانی هم بدون ارور انجام شد ولی وضعییت تغییر نکرد

0

به اشتراک گذاری این پست


لینک به پست

باید براسش تابع نوشت فرم شما از توابع اصلی خونده نمی شه و نوشتن تابع زمان بره اگر تونستم می نویسم

می تونید با بررسی فایل press-this.php در مسیر پوشه wp-admin خودتون هم اینکار را بکنید

2

به اشتراک گذاری این پست


لینک به پست

باید براسش تابع نوشت فرم شما از توابع اصلی خونده نمی شه و نوشتن تابع زمان بره اگر تونستم می نویسم

می تونید با بررسی فایل press-this.php در مسیر پوشه wp-admin خودتون هم اینکار را بکنید

بسیار بسیار ممنونم از راهنمایی هاتون چه وقت بکنید چه نکنید

البته زیاد عجله ندارم چون تو روند سایت تاثیر زیادی نداره البته بودنش خیلی بهتره

خودم هم که نمیتونم چون در این مورد هیچ اطلاعاتی ندارم مگر اینکه بگین چه کاری انجام بدم

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

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

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری