• اطلاعیه ها

    • Saeed Fard

      سیاره وردپرس ایران   15/10/95

      سایت‌های زیادی در ایران و سرتاسر وب در زمینه گسترش وردپرس تلاش دارند و نوشته‌های آموزشی منتشر می‌کنند. اما ضرورت یک منبع خوب و ارزشمند برای جمع‌آوری بهترین‌های وب ایران و دنیا باعث ایجاد سیاره وردپرس شد تا دنبال کنندگان این موضوع به صورت یکجا و آسان بتوانند به این نوشته‌ها دسترسی داشته باشند.     در سیاره وردپرس این بستر فراهم شده است که آدرس وب‌سایت‌های مربوطه ثبت و برای این سرویس ارسال شود، آخرین نوشته‌های مفید وب‌سایت‌ها در سیاره وردپرس و نیز در بخش اخبار وردپرس پیشخوان سایت‌های وردپرسی از طریق افزونه‌ی Parsi Date نمایش داده می‌شود. همینطور کاربران از طریق عضویت در خبرنامه ایمیلی سیاره وردپرس می‌توانند به صورت دوره‌ای بهترین و جدیدترین نوشته‌های وردپرسی را که توسط اعضای تحریریه و همکاران سیاره وردپرس بررسی و تایید می‌شود را در ایمیل خود دریافت کنند.   امکانات سیاره وردپرس امکان ثبت آدرس سایت‌هایی که نوشته‌های مفید در زمینه وردپرس دارند. نمایش نوشته‌های وردپرس سایت‌ها در سیاره وردپرس نمایش نوشته‌های وردپرس در پیشخوان سایت‌های وردپرس فارسی توسط ویجت اخبار پلاگین Parsi Date و ... امکان ثبت ایمیل کاربران علاقه‌مند جهت دریافت مطالب محبوب و ویژه در خبرنامه دوره‌ای سیاره توسط اعضای تحریریه و ... جهت ثبت سایت وردپرسی یا ایمیل خود به سایت سیاره وردپرس مراجعه کنید   تاپیک پیشنهادات و همکاری در سیاره وردپرس : http://wpu.ir/qlhy5  
saeedagha

قرار دادن یک شماره اختصاصی برای هر نوشته

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

باسلام خدمت دوستان!

می خواهم برای هر نوشته یک شماره 10 رقمی قرار بدم که در همان نوشته به نمایش در بیاید و همچنین در قسمت نوشته ها در پیشخوان یک ستون اضافه شود و در جلوی هر نوشته شماره 10 رقمی همان نوشته را نشان دهد

ممنون می شوم از دوستان کسی کمک نماید

اون شماره میتونه به صورت تصادفی نشون داده بشه یا تاریخ و ای دی نوشته رو به صورت پشت یرهم نمایش بده

تعداد ارقام مهم نیست مثلا 11 یا 12 تا هم شد ایراد نداره یا کمتر

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


لینک به پست

خب برای این کار میتونید از زمینه ی دلخواه استفاده کنید .

توی انجمن توضیح داده شده چجور عمل کنید دوست عزیز

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


لینک به پست

خب برای این کار میتونید از زمینه ی دلخواه استفاده کنید .

توی انجمن توضیح داده شده چجور عمل کنید دوست عزیز

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

شماره می تونه ترکیبی از ایدی نوشته به همراه زمان باشه ولی به صورت متصل تا بدین شکل یک شماره منحصر به فرد برای هر نوشته وجود داشته باشد

ویرایش شده در توسط saeedagha

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


لینک به پست

این کد به درد شما می خوره.این کد را در قسمت دلخواه single.php قرار دهید.


kod khabar:<?php the_ID(); ?>

و بعد برای اینکه این کد را در پنل مدیریت خود ببینید از افزونه WP Show IDs استفاده کنید.

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


لینک به پست

این کد به درد شما می خوره.این کد را در قسمت دلخواه single.php قرار دهید.


kod khabar:<?php the_ID(); ?>

و بعد برای اینکه این کد را در پنل مدیریت خود ببینید از افزونه WP Show IDs استفاده کنید.

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

1392052089

که هشت رقم اول تاریخ یعنی 20 مرداد 92 و عدد 89 هم به عنوان ای دی نوشته

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

حالا این اعداد را چگونه برای هر پست اختصاص بدهم و همچنین در قسمت نوشته ها در پبشخوان هم نمایش داده شود

ممنون

ویرایش شده در توسط saeedagha

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


لینک به پست

از تابع rand نباید استفاده بشه - چون با هر بار رفرش شدن تغییر خواهد کرد. پس:

اول متاباکسی می سازید به اسم مثلاً : serialpost

بعد متغیری تعیین می کنید که دو بخش داره:


<?php echo get_the_date(Ymd) , get_the_ID(); ?>

این تابع اول تاریخ و بعد آی دی پست رو میاره که همیشه ثابتند - می تونید هر فرمول محاسباتی بهش بدید مثل جمع و ضرب تا طولانی تر بشه (گرچه توصیه نمیشه)

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


wp_is_post_revision($post_ID)

تا اینجا رو برید جلو - بعد می رسیم به نمایش متا باکس در پنل ادمین

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


لینک به پست

با تشکر از دوستان

تا اینجا پیش رفتم که با استفاده از


<?php echo get_the_date(Ymd) , get_the_ID(); ?>

به هر نوشته یک شماره اختصاص دادم

اما شیوه ساخت متاباکس رو بلد نبودم توی انجمن اگه جایی توضیح داده شده ممنون میشم راهنماییی کنید

یا همینجا توضیح بدهید (آشنایی با برنامه نویسی مبتدی :( )

متا باکس همون زمینه دلخواه هست؟

اگه همونه من از این


$values = get_post_custom_values("serialpost"); echo $values[0];

استفاده میکنم

ویرایش شده در توسط saeedagha

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


لینک به پست

خب اولین کار اینه که یک زمینه دلخواه با مقداری که در پست 6 آمده تولید کنیم.

تابع زیر این امکان را می دهد که بدون آنکه بطور دستی زمینه دلخواه را در پست ایجاد کنید و سپس به آن مقدار دهید، هر دو کار را بصورت خودکار انجام میدهد. یعنی وقتی پست منتشر می شود بصورت خودکار زمینه دلخواه را تولید کرده و به آن مقدار می دهد: در اینجا نام زمینه دلخواه را برابر serialpost گرفته ام:


function add_serialpost_custom_field($post_ID) {
global $wpdb;
if(!wp_is_post_revision($post_ID)) {
add_post_meta($post_ID, 'serialpost','1',true);
$isk = get_the_date(Ymd).get_the_ID();
update_post_meta($post_ID,'serialpost',$isk);
}
}
add_action('publish_post', 'add_serialpost_custom_field');

کار تمام شد - از این به بعد شماهر پستی را که تولید کنید، برای آن پست زیمنه دلخواه serialpost با مقدار ترکیبی تاریخ انتشار و آی دی پست تولید می کند. علاوه بر آن برای پست های قبلی هم به شر آنکه مجدداً ذخیره شوند همین کار را انجام خواهد داد.

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

اما برای اینکه این serialpost یا هر زمینه دلخواه دیگر در پنل ادمین و در یک ستون نمایش داده شود دو تابع زیر استفاده گردد:


function add_new_column_to_admin_pannel( $column ) {
$column['serial'] = 'Serial';
return $column;
}
add_filter( 'manage_posts_columns', 'add_new_column_to_admin_pannel' );
function add_value_to_above_column( $column_name, $post_id ) {
$custom_fields = get_post_custom( $post_id );
switch ($column_name) {
case 'serial' :
echo $custom_fields['serialpost'][0] . '';
break;
default:
}
}
add_filter( 'manage_posts_custom_column', 'add_value_to_above_column', 10, 2 );

که البته می توایند با array ستون های دیگری نیز اضافه نمایید.

ویرایش شده در توسط isk

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


لینک به پست

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

ممنون از همهدوستان واقعا مثل همیشه عالی هستین

ویرایش شده در توسط saeedagha

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


لینک به پست

یکی از راه های کلی و ساده اینه که کوئری مناسبی برای دیتابیس بنویسید. مثلاً:


INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT wp_posts.ID, 'serialpost', '10'
FROM wp_posts
WHERE wp_posts.post_status = 'publish' and wp_posts.post_type = 'post';

اما این کوئری بهتمام پست ها زمینه دلخواه با مقدار ثابت مثلاً 10 رو اضافه می کنه که با صورت مسئله شما فرق داره.

راه دیگه اینه که از افزونه های بالک آپدیت استفاده بشه که اکثر این افزونه ها هم مستقیماً روی دیتابیس می نویسند و توابع رو اجرا نمی کنند - پس باز هم به صورت مسئله شما فرق داره.

راه سوم اینه که در پنل ادمین همه ی پست ها رو انتخاب کنید - کارهای دسته جمعی رو انتخاب کنید - همه پست ها رو به حالت پیش نویس ببرید - ذخیره کنید و مجدداً همه اونها رو هم به همین ترتیب به حالت منتشر شده برگردونید. اما طبق اون اتفاقی که در post.php‌ و edit.php‌ تعریف شده باز هم در این صورت توابع اجرا نمیشن. پس باز هم با صورت مسئله شما تفاوت داره.

راه چهارم اینه که نوشته های قبلی رو تک به تک باز کرده و کلید به روزرسانی رو کلیک کنید که در اینصورت توابع اجرا میشن. اما با زمان بری بالا!

راه پنجم اینه که پست ها رو به زباله دانی منتقل و سپس تک به تک بازیابی کنید. در این صورت توابع اجرا میشن. با زمان بری کمتر نسبت به راه چهارم!

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


لینک به پست

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

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

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

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


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

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

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


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