omid_r

نمایش مطالب دسته ای خاص در مطلب یا برگه

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

با سلام

همون طور که از عنوان نوشته معلومه میخوام بهم یک کدی رو معرفی کنید که بعد از قرار دادن اون در بین متن های یک مطلب یا برگه ، مطالب موضوع تعیین شده رو لیست کنه. (اگر با تصویر شاخص بیاره چه بهتر!)

آموزش های زیادی در این باره هست ولی متاسفانه اون چیزی که من میخوام نیست!

در همه جا این مورد رو آموزش دادند که داخل قالب (کدهای قالب) یک حلقه ای تعریف بشه و اون دسته ای که مورد نیازمون هست رو لیست کنه ...

ولی من میخوام طوری باشه که در داخل هر مطلب یا برگه ای که این کد (یا شورت کد) رو زدم، مطالب موضوعی رو که در همون کد (یا شورت کد) تعیین میکنم رو لیست کنه ...

یک کدی هم در داخل سایت همیار وردپرس دیدم؛ ولی متاسفانه وقتی کدهای تعریف رو در فانکشن و شورت کد رو در مطلب استفاده میکنم، لیست مطالب اون موضوع رو میاره در بالاترین قسمت مطلب قرار میده، یعنی بالای تمام متن ها و تصاویر و ... !!!

ممنون میشم راهنماییم کنید.

با تشکّر

0

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


لینک به پست

اگه منظورتون رو درست متوجه شده باشم شما میخواین با وارد کردن یک شرت کد یه سری داده مشخص شده نمایش داده بشه

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

2

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


لینک به پست

میخوام با وارد کردن یک شورت کد عنوان ها و لینک مطالب یک دسته (که آی دی اون دسته رو در همون شورت کد معلوم میکنم) رو داخل یک مطلب لیست کنه.

حالا اگر بشه تصاویر شاخص هر مطلب رو هم نمایش بده که چه بهتر!

تشکّر

0

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


لینک به پست

http://wpschool.ir/%D8%B3%D8%A7%D8%AE%D8%AA-%D8%B4%D9%88%D8%B1%D8%AA-%DA%A9%D8%AF-%D8%AF%D8%B1-%D9%88%D8%B1%D8%AF%D9%BE%D8%B1%D8%B3/

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

2

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


لینک به پست

خوب؛ حالا که شما آموزش ساخت شورت کد رو بهم دادید، بفرمایید که من چطوری به تنظیمات شورت کد (در فایل فانکشن) بگم که آخرین مطالب یک دسته که متغیر هم هست رو نشون بده ؟ (عنوان رو بنویسه و لینک کنه بهش و ...)

سپاس

0

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


لینک به پست

درود.

به فایل function خود اضافه نمایید :


function ycat_shortcode($cati) {
$custom_query = new WP_Query(array(
'post_status' =>'publish',
'post_type' =>'post',
'order' =>'descending',
'orderby' =>'ID',
'cat' =>'3',
'posts_per_page' =>'10',

));
if( $custom_query->have_posts() ) :
while($custom_query->have_posts()) : $custom_query->the_post();?>
<p><?php the_title(); ?></p>
<?php
endwhile; endif;
wp_reset_query();


}
add_shortcode('ycat', 'ycat_shortcode');

جلوی cat هم شماره دسته مورد نظر را وارد نمایید

و در پست ها به این صورت استفاده نمایید :

[ycat]

1

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


لینک به پست

ممنون.

وقتی این کد رو وارد و بعد شورت کد رو فراخوانی میکنم، باز هم لیست مطالب در ابتدای مطلب و قبل از تمام متن ها و تصاویر و به صورت راست چین شده قرار میگیره!

(با اینکه من شورت کد رو در آخر مطلب و مثلاً به صورت وسط چین وارد میکنم!)

مشکل از کجاست ؟!

تشکّر

0

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


لینک به پست

جایگزین کنید :


function ycat_shortcode($cati) {
ob_start();
$custom_query = new WP_Query(array(
'post_status' =>'publish',
'post_type' =>'post',
'order' =>'descending',
'orderby' =>'ID',
'cat' =>'3',
'posts_per_page' =>'10',

));
if( $custom_query->have_posts() ) :
while($custom_query->have_posts()) : $custom_query->the_post();?>
<p><?php the_title(); ?></p>
<?php
endwhile; endif;
wp_reset_query();
return ob_get_clean();

}
add_shortcode('ycat', 'ycat_shortcode');

1

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


لینک به پست

جایگزین کنید :


function ycat_shortcode($cati) {
ob_start();
...

ممنون از شما دوست عزیز! این کد درست هست ...

1- حالا اگر بخوام موقع نوشتن شورت کد ID دسته رو مشخصی کنم باید چطوری تعریف کنم ؟

2- اگر فرصت داشتید و امکانش بود، یک توضیح مختصر در مورد همین کدها و ساختار کلی اونها رو ارائه بدید.

با تشکّر

0

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


لینک به پست

جایگزین کنید :


function ycat_shortcode($cati) {
ob_start();
$cati = shortcode_atts( array (
'c' => '1'),$cati);

$custom_query = new WP_Query(array(
'post_status' =>'publish',
'post_type' =>'post',
'order' =>'descending',
'orderby' =>'ID',
'cat' => $cati['c'],
'posts_per_page' =>'10',

));
if( $custom_query->have_posts() ) :
while($custom_query->have_posts()) : $custom_query->the_post();?>
<p><?php the_title(); ?></p>
<?php
endwhile; endif;
wp_reset_query();
return ob_get_clean();

}
add_shortcode('ycat', 'ycat_shortcode');

از این به بعد به این صورت :

[ycat c=3]

عدد مقابل c به معنای شماره دسته خواهد بود.

در کل یک تابع شما تعریف کردید که در آن یک کوئری گرفته شده برای نمایش پست های یک دسته خاص که برای این کار می توانید از ژنراتور کوئری ساز استفاده نمایید


$custom_query = new WP_Query(array(
'post_status' =>'publish',
'post_type' =>'post',
'order' =>'descending',
'orderby' =>'ID',
'cat' =>'3',
'posts_per_page' =>'10',

));

کد بالا کوئری ساخته شده است.

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

و سپس ایجاد shortcode برای استفاده در وردپرس.

2

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


لینک به پست

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

descending به ascendin تغییر دادم، ولی نشد!

ID رو به date تغییر دادم، باز هم ترتیب لیست شدن جدید به قدیم بود.

یعنی اولین لینک جدیدترین مطلب و آخرین لینک قدیمی ترین مطلب اون دسته هست که میخوام برعکس بشه ...

تشکّر

0

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


لینک به پست

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

descending به ascendin تغییر دادم، ولی نشد!

ID رو به date تغییر دادم، باز هم ترتیب لیست شدن جدید به قدیم بود.

یعنی اولین لینک جدیدترین مطلب و آخرین لینک قدیمی ترین مطلب اون دسته هست که میخوام برعکس بشه ...

تشکّر

پارامتر order را تنظیم کنید

http://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters

1

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


لینک به پست

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

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

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

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


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

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

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


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

  • مطالب مشابه

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

    • توسط arianemun
      سلام عرض ادب به کاربران وردپرس پارسی ، من یک مشکلی دارم در افزونه ای ، افزونه woocomerce product finder یک افزونه ای است طبق تنظیمات و چیز هایی که برای محصول ووکامرسی تعریف میکنیم با انتخواب گزینه ها توسط کاربر محصول مورد نظر خودش رو پیدا میکنه، تنها مشکلی که این افزونه یا میشه گفت ضعفی که داره تفاوت محصول برجسته رو با محصول ساده متوجه نمیشه یعنی اگر تو اون دسته یک محصول برجسته باشه و یک محصول ساده اون ها رو از هم تفکیک نمیکنه من میخواستم این قابلیت رو به این افزونه اضافه کنم که کاربر وقتی محصولش رو پیدا کرد هم محصول ساده ها رو ببینه و محصول برجسته شده ! ممنون میشم کمک کنید .
       
      لینک افزونه استفاده شده
    • توسط reza_yki
      سلام من ابزارکی نوشتم که کاربر بتونه به وسیله select option به صورتی multi بتونه چندین دسته رو انتخاب کنه همه چیز درست و بدون مشکل کار میکنه فقط یه مشکل هست اونم اینه که وقتی ابزارک رو برای اولین بار فعال میکنی خطای زیر رو میده وباید یه دونه دسته رو انتخاب و ذخیره کنی تا ابزارک به صورت صحیح کارکنه لطفا راهنماییم کنید.
      Warning: in_array() expects parameter 2 to be array, string given in E:\Program Files\xampp\htdocs\wordpress\wp-content\themes\mymag\functions\widgets\widgets.php on line 29  
      اینم سورس کد:
      <?php public function form( $instance ) { $title = ! empty( $instance['title'] ) ? $instance['title'] : esc_html__( 'عنوان ابزارک', 'text_domain' ); $args = array( 'hide_empty' => 0, 'type' => 'post', 'taxonomy' => 'category', 'orderby' => 'name', 'hierarchical' => true, ); $cats = get_categories( $args ); $instance['cat_id'] = isset( $instance['cat_id'] ) ? ( $instance['cat_id'] ) : '1'; $count_cat = isset ($instance['cat_id']) ? count($instance['cat_id']) : '1' ; $tab_number = isset( $count_cat ) ? absint( $count_cat ) : 1; ?> <p> <label for="<?php echo $this->get_field_name( 'title' ); ?>"><?php _e( 'Title:' ); ?></label><br> <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" /> </p> <p> <label for="<?php echo $this->get_field_id('tab_number'); ?>"><?php _e( 'تعداد زبانه:'); ?></label><br> <input id="<?php echo $this->get_field_id('tab_number'); ?>" name="<?php echo $this->get_field_name('tab_number'); ?>" type="number" min="0" class="my_widget_number" value="<?php echo $tab_number; ?>" size="3" /> </p> <label for="<?php echo $this->get_field_name( 'cat_id' ); ?>"><?php _e( 'انتخاب دسته بندی : ' ); ?></label> <select id="<?php echo $this->get_field_id( 'cat_id' ); ?>" name="<?php echo $this->get_field_name( 'cat_id[]' ); ?>" multiple="multiple" style="width: 100%; margin: 10px auto; height: auto;"> <?php foreach( $cats as $cat ): ?> <option value="<?php echo esc_attr(__($cat->term_id)); ?>"<?php selected(in_array($cat->term_id, $instance['cat_id'])); // selected($cat->term_id,$cats_id) ?>><?php echo esc_attr(__($cat->name)); ?></option> <?php endforeach; ?> </select> <p> <input type="text" value="<?php echo esc_attr(__(implode(',', $instance['cat_id']))); ?>"> </p> <?php }  
    • توسط سعید فرزادی پور
      با عرض سلام
      من به مشکلی خوردم که راه حل اون رو نمیدونم
      در هدر سایت یک نویگیشن بار دارم که منوی اصلی سایتم به صورت دراپ داون در این نویگیشن بار وجود داره ، قال سایت من shaply هستش و استفاده از ویجت ها در body بازه ، من با استفاده از یک ویجت اسلایدر در بالاترین قسمت و زیر هدر سایت که ارتفاع اونم 55 پیکسل هستش اسلایدر بزرگ ایجاد کردم ، و حالا زمانی که میرم روی دراپ داون ها متاسفانه تا قبل از اسکرول کردن به پایین ، زیر منو ها به زیر اسلایدر میرن ، اما بعد از اسکرول کردن به پایین این مشکل حل شده و منو ها و زیر منو ها نمایش داده میشن ، هرچه z-index رو افزایش دادم نتیجه ای نداشت ، چطور میتونم این مشکل رو حل کنم ؟
      و سوال دوم این که در این تم منو ها اول به پایین و بعد به راست باز میشن و من میخوایم سایت رو به صورت فارسی داشته باشم و میخوام اول به پایین و بعد به چپ باز بشن منو ها , چه تغییری میتونم در css ایجاد کنم ؟
    • توسط hamid_diablo
      سلام دوستان
      من وردپرس رو روی لوکال هاست نصب کرده بودم
       
      تا چند روز پیش مشکلی نداشتم تا اینکه یه پوسته جدید نصب کردم و بعد از اون متاسفانه وردپرس بالا نیامد (صفحه سفید ظاهر شد )
       
      فقط قالب صحیفه رو نمایش میده بدون پیشخوان!!!
       
      وردپرس و پاک کردم و دوباره روی لوکال هسات نصب کردم اما مشکل برطرف نشد !
      ممنون میشم راهنماییم کنید