• اطلاعیه ها

    • Saeed Fard

      برگزاری چهارمین همایش Coder Conf و کد تخفیف برای کاربران وردپرس پارسی   20/04/97

      کدرکانف هر سال در آخرین پنجشنبه مرداد با بورد‌های مختلفی برگزار می‌گردد،امسال نیز کدرکانف در همین تاریخ با حضور برنامه نویسان مطرح کشور در بورد تخصصی جاوااسکریپت برگزار خواهد شد، یک گردهمایی متفاوت با طعم Javascript. Coderconf هر سال نسبت به سال‌های گذشته با حضور برنامه‌نویسان پر رنگتر می‌شود. ما سعی کردیم هر ساله به این کنفرانس مفهوم عمیق تری ببخشیم تا از آنچه در سال‌های گذشته عرضه شده به روزتر و مفیدتر واقع شویم. امسال فرصتی خواهد بود تا با نگرشی جدید و بهبود مطالب ارائه شده، عمیقتر به این موضوع نگاه کنیم تا بجای تکرار مباحث پیشین گامی هر چند کوچک در مسیر ارتقای دانش فنی برنامه‌نویسان ایرانی برداریم. ما در Coderconf ۴ با تمرکز بر روی Javascript نیت کرده‌ایم این فرصت را در اختیار برنامه نویسان قرار دهیم تا با ظرافت و استانداردهای روز دنیا کار خود را پیش ببرند. به نظر ما امسال زمان آن فرا رسیده‌است تا این زبان را به صورت تخصصی و از ابعاد مختلف به چالش بکشیم.   دبیر علمی همایش میلاد حیدری، کدرکانف ۴ را اینگونه توصیف کرده است :اشتراک گذاری دانش بهترین راه رسیدن به جاودانگی اطلاعات است. هر ساله همایش‌های زیادی برگزار میشه که افراد شرکت‌کننده می‌توانند با افراد مجرب شبکه سازی کنند. امسال در کدرکانف سعی کردیم علاوه بر بخش شبکه سازی بین افراد بیشتر روی انتقال دانش و کیفیت ارائه ها تمرکز داشته باشیم . به قصد یک گردهمایی بلند مدت بین برنامه‌نویسان جاوااسکریپت که با هم تبادل دانش و اطلاعات کنند گردهم آییم.
      بنده به عنوان عضو کوچکی از جامعه برنامه‌نویسان جاوااسکریپت ایران امیدوارم در کدرکانف امسال علاوه بر شبکه سازی، از اطلاعاتی که دوستان در این همایش در اختیارتان قرار می‌دهند استفاده کنید. در سایت همایش میتوانید سخنرانان و موضوع پنل همایش کدرکانف رو مشاهده کنید . علاقه‌مندان به حضور در این همایش می‌توانند با کد تخفیف wpparsi اقدام به ثبت نام در این گردهمایی کنند. سایت همایش :‌http://coderconf.org
      بلیط فروشی همایش :‌https://evand.com/events/coderconf4  
mehrdad_k

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

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

سلام

من میخوام نتایج جستجو را بصورتی تنظیم کنم که مثلا ده پست دلخواهم  (در صورتی که هر کدام از این ده پست در نتایج جستجو باشند) اول نمایش داده بشه بعد باقی به همون ترتیب پیشفرض (تاریخ). ترتیب نمایش ده پست مهم نیست.

به ذهنم رسید که با زمینه های دلخواه چک باکس ویژه بگذارم براش اما در نتایج جستجو چطور باید ترتیب اونها رو بالاتر نشون بدم ؟

ویرایش شده در توسط merhzar_h
0

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


لینک به پست

دوستان کسی میتونه کمک کنه ؟

میخوام پست های ویژه در صورتی که جزء نتایج جستجو باشند در صدر قرار گیرند.

همچنین دسته. اگر دسته ای باز شد پست های ویژه در صدر باشند سپس باقی پست ها.

0

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


لینک به پست

می تونید یک زمینه دلخواه بسازید به نام مثلا postorder و مقدارش رو عدد بگذارید که ده پست دلخواهتون اولین اعداد رو داشته باشند و بعد با یک تابع search_query رو ست کنید 

برای نوشتن تابع از این پست کمک بگیرید 

http://forum.wp-parsi.com/topic/37446-چیدمان-محصولات-بر-اساس-نام-در-درسته/?do=findComment&comment=235334

1

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


لینک به پست
در 17 ساعت قبل، imanfakhar گفته است :
در 17 ساعت قبل، imanfakhar گفته است :

می تونید یک زمینه دلخواه بسازید به نام مثلا postorder و مقدارش رو عدد بگذارید که ده پست دلخواهتون اولین اعداد رو داشته باشند و بعد با یک تابع search_query رو ست کنید 

برای نوشتن تابع از این پست کمک بگیرید 

http://forum.wp-parsi.com/topic/37446-چیدمان-محصولات-بر-اساس-نام-در-درسته/?do=findComment&comment=235334

می تونید یک زمینه دلخواه بسازید به نام مثلا postorder و مقدارش رو عدد بگذارید که ده پست دلخواهتون اولین اعداد رو داشته باشند و بعد با یک تابع search_query رو ست کنید 

برای نوشتن تابع از این پست کمک بگیرید 

http://forum.wp-parsi.com/topic/37446-چیدمان-محصولات-بر-اساس-نام-در-درسته/?do=findComment&comment=235334

ممنون استاد بزگروار از پاسختون

کد زیر رو مستقیم در function.php قرار دادم تغییری در نمایش نتایج دسته ها بوجود نیامد . اگه این دلیلش معلوم بشه میشه رفته سراق کوئری بعدی ..


add_action( 'pre_get_posts', 'foo_modify_query_orderby_title' );
function foo_modify_query_orderby_title( $query ) {
    if ( ! is_admin() && $query->is_main_query() && $query->get( 'cat' ) )
        $query->set( 'orderby', 'title' );
}

در قالب، حلقه بصورت زیر شروع شده:

 while ( have_posts() ) : the_post();

ضمنا برای تست خودم یک کوئری تست کردم و ترتیب نمایش را بر اساس زمینه دلخواه postorder دادم . عدد پیشفرض زمینه دلخواه را 200 قرار دادم و برای بعضی پست ها اعدادی بین 1 تا 10 قرار دادم. سرت به درستی انجام شد ولی مشکل اینه که حتما باید پست ها را یکبار باز کرد و ویرایش کرد تا در نتایج نمایش داده شود. آیا راهی هست که بیشه به کل پست ها بدون ویرایش همه، این فیلد را اختصاص داد؟

از این روش روی لوکال تست کردم تغییری انجام نشد :

function add_custom_field_automatically($post_ID) {
global $wpdb;
if(!wp_is_post_revision($post_ID)) {
    add_post_meta($post_ID, 'postorder', '200', true);
}
}
add_action('publish_page', 'add_custom_field_automatically');
add_action('publish_post', 'add_custom_field_automatically');

 

ویرایش شده در توسط merhzar_h
0

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


لینک به پست
در در 4‏/4‏/2016 at 16:00، imanfakhar گفته است :

می تونید یک زمینه دلخواه بسازید به نام مثلا postorder و مقدارش رو عدد بگذارید که ده پست دلخواهتون اولین اعداد رو داشته باشند و بعد با یک تابع search_query رو ست کنید 

برای نوشتن تابع از این پست کمک بگیرید 

http://forum.wp-parsi.com/topic/37446-چیدمان-محصولات-بر-اساس-نام-در-درسته/?do=findComment&comment=235334

جناب فخار (یا دیگر اساتید) ممکنه بفرمایید مشکل نوشتن این کوئری چطور حل میشه ؟

باتشکر.

0

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


لینک به پست

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

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

add_action( 'pre_get_posts', 'foo_modify_search_query_custom_orderby' );
function foo_modify_search_query_custom_orderby( $query ) {
    if ( ! is_admin() && $query->is_main_query() && is_search() )
        $query->set( 'meta_key', 'postorder' );
        $query->set( 'orderby', 'meta_value' );
}

 

1

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


لینک به پست

برای اینکه به کل پستها متا با مقدار دیفالت بدید یک قالب برگه با کدهای زیر بسازید :

<?php
/*template name: update meta*/
$q = new WP_Query(array(
'post_type'	=>	array('post', 'page'),
'post_status'	=>	array('publish'),
'posts_per_page'	=>	'-1',
'order'	=>	'ASC'
));
get_header();
if($q->have_posts()) :
$x =200;
while($q->have_posts()) :
$q->the_post();
update_post_meta($q->post->ID, 'postorder', $x);
echo $q->post->post_title.' Updated <br>';
endwhile;
endif;
wp_reset_query();
get_footer();
?>

بعد از طریق ادمین برگه ای با قالب update meta منتشر کنید و برگه رو باز کنید وقتی نام تمام مطالبتون در صفحه چا\ شد برگه رو ببندید و از وردپرس حذفش کنید قالبی که ساخته اید رو هم پاک کنید

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

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


لینک به پست

اول عرض کنم بسیار عالی بود. واقعا ممنون.

در در 11‏/4‏/2016 at 06:32، imanfakhar گفته است :

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

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

در در 11‏/4‏/2016 at 06:32، imanfakhar گفته است :

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

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

در در 11‏/4‏/2016 at 08:17، imanfakhar گفته است :

برای اینکه به کل پستها متا با مقدار دیفالت بدید یک قالب برگه با کدهای زیر بسازید :

عالی بود.

برای نمایش دسته ها هم به همین شکل استفاده کردم. باید مطالب شما رو که جاهای مختلف گفته شده رو یک کتابچه آموزشی کنن و جهت ارتقاء وب فارسی در وب منتشر کنند...

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

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


لینک به پست

یک سوال .

چطور میتونم کوئری برای مطالب بر اساس این متا بنویسم

مثلا پست ها که postorder اونها کوچکتر از 20 باشه یا بین 5 و 20 باشه ...

0

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


لینک به پست
$query = new WP_Query( array (
	'meta_query'             => array(
		array(
			'key'       => 'postorder',
			'value'     => '5,20',
			'compare'   => 'BETWEEN',
			'type'      => 'NUMERIC',
		),
	),
'orderby'	=>	'meta_value',	
) );

 

1

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


لینک به پست

یه مشکل برای

در در 11‏/4‏/2016 at 06:32، imanfakhar گفته است :

add_action( 'pre_get_posts', 'foo_modify_search_query_custom_orderby' );
function foo_modify_search_query_custom_orderby( $query ) {
    if ( ! is_admin() && $query->is_main_query() && is_search() )
        $query->set( 'meta_key', 'postorder' );
        $query->set( 'orderby', 'meta_value' );
}

 

یه مشکل برای این کوئری هست که کل کوئری های داخل سایت رو تغییر میده. مثلا من ترتیب رو نزولی یا سعودی کنم کل پست ها حتی در پنل اصلی وردپرس تغییر کرده اند و بر اساس تاریخ سرت میشن ...

در 11 ساعت قبل، imanfakhar گفته است :

$query = new WP_Query( array (
	'meta_query'             => array(
		array(
			'key'       => 'postorder',
			'value'     => '5,20',
			'compare'   => 'BETWEEN',
			'type'      => 'NUMERIC',
		),
	),
'orderby'	=>	'meta_value',	
) );

 

واقعا ممنون و شرمنده که وقتتون رو میگیرم ...

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

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

remove_all_filters('posts_orderby');

 

ویرایش شده در توسط merhzar_h
0

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


لینک به پست
add_action( 'pre_get_posts', 'foo_modify_search_query_custom_orderby' );
function foo_modify_search_query_custom_orderby( $query ) {
    if ( ! is_admin() && $query->is_main_query() && is_search() ) {
        $query->set( 'meta_key', 'postorder' );
        $query->set( 'orderby', 'meta_value' );
}

}

 

1

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


لینک به پست
در 54 دقیقه قبل، merhzar_h گفته است :

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

$query = new WP_Query( array (
	'meta_query'             => array(
		array(
			'key'       => 'postorder',
			'value'     => '5,20',
			'compare'   => 'BETWEEN',
			'type'      => 'NUMERIC',
		),
	),
'orderby'	=>	'rand',	
'posts_per_page' =>	5
) );

 

1

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


لینک به پست
در در 16‏/4‏/2016 at 16:03، imanfakhar گفته است :

add_action( 'pre_get_posts', 'foo_modify_search_query_custom_orderby' );
function foo_modify_search_query_custom_orderby( $query ) {
    if ( ! is_admin() && $query->is_main_query() && is_search() ) {
        $query->set( 'meta_key', 'postorder' );
        $query->set( 'orderby', 'meta_value' );
}

}

 

ممنون از راهنمایی هاتون.

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

add_action( 'pre_get_posts', 'foo_modify_cat_query_custom_orderby' );
function foo_modify_cat_query_custom_orderby( $query ) {
    if ( ! is_admin() && $query->is_main_query() && is_category() ) {
        $query->set( 'meta_key', 'postorder' );
        $query->set( 'orderby', 'meta_value' );
}}

مشکل اینه که کل پست هایی پست متای دیفالت دارند (200) از تاریخ پست های اخر به پست های اول سرت میکنه و پست های جدید بالا قرار نمیگیرند. یا همان دسته هایی که متای تعریف شده جهت قرار گرفت در بالای نتایج هستند در ادامه پست ها هم به این شکل هستند. (این موضوع برای جستجو هم هست)

ایا راهی هست که بشه پست های بعد از سرت بر اساس متای تعریف شده را  به ترتیب تاریخ ثبت نمایش داد ؟

ضمنا این دستور برای اعمال در چند دسته خاص کار نکرد :

    if ( ! is_admin() && $query->is_main_query() && is_category(13,15,17) ) {

چه چیزی جای این باید استفاده کرد ؟

بازم ممنون...

0

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


لینک به پست
در 10 دقیقه قبل، merhzar_h گفته است :

ایا راهی هست که بشه پست های بعد از سرت بر اساس متای تعریف شده را  به ترتیب تاریخ ثبت نمایش داد ؟

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

        $query->set( 'meta_key', 'postorder' );
        $query->set( 'orderby', 'meta_value' );
        $query->set( 'order', 'ASC' );

 

0

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


لینک به پست
در در 11‏/4‏/2016 at 08:17، imanfakhar گفته است :

برای اینکه ...

این مشکل هست و حل نشد :

در 1 ساعت قبل، merhzar_h گفته است :

ممنون از راهنمایی هاتون.

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


add_action( 'pre_get_posts', 'foo_modify_cat_query_custom_orderby' );
function foo_modify_cat_query_custom_orderby( $query ) {
    if ( ! is_admin() && $query->is_main_query() && is_category() ) {
        $query->set( 'meta_key', 'postorder' );
        $query->set( 'orderby', 'meta_value' );
}}

مشکل اینه که کل پست هایی پست متای دیفالت دارند (200) از تاریخ پست های اخر به پست های اول سرت میکنه و پست های جدید بالا قرار نمیگیرند. یا همان دسته هایی که متای تعریف شده جهت قرار گرفت در بالای نتایج هستند در ادامه پست ها هم به این شکل هستند. (این موضوع برای جستجو هم هست)

ایا راهی هست که بشه پست های بعد از سرت بر اساس متای تعریف شده را  به ترتیب تاریخ ثبت نمایش داد ؟

ضمنا این دستور برای اعمال در چند دسته خاص کار نکرد :


    if ( ! is_admin() && $query->is_main_query() && is_category(13,15,17) ) {

چه چیزی جای این باید استفاده کرد ؟

بازم ممنون...

 

0

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


لینک به پست
$query->set( 'orderby' => array( 'meta_value' => 'DESC', 'date' => 'ASC' ) );
 if ( ! is_admin() && $query->is_main_query() && (is_category(13) || is_category(15) || is_category(17)) ) {

 

1

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


لینک به پست
در 12 ساعت قبل، imanfakhar گفته است :

$query->set( 'orderby' => array( 'meta_value' => 'DESC', 'date' => 'ASC' ) );

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

در 12 ساعت قبل، imanfakhar گفته است :

if ( ! is_admin() && $query->is_main_query() && (is_category(13) || is_category(15) || is_category(17)) ) {

اصلا به این فکر نکرده بودم!

ممنون.

0

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


لینک به پست
نقل قول

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

ببخشید چک کنید:

$query->set( 'orderby', array( 'meta_value' => 'ASC', 'date' => 'DESC' ) );

 

1

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


لینک به پست

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

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

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

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


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

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

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


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