رفتن به مطلب

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


omid_r

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

با سلام

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

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

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

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

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

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

با تشکّر

لینک به ارسال

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

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

لینک به ارسال

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

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

تشکّر

لینک به ارسال

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

لینک به ارسال

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

سپاس

لینک به ارسال

درود.

به فایل 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]

لینک به ارسال

ممنون.

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

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

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

تشکّر

لینک به ارسال

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


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');

لینک به ارسال

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


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

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

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

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

با تشکّر

لینک به ارسال

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


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 برای استفاده در وردپرس.

لینک به ارسال

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

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

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

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

تشکّر

لینک به ارسال

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

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

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

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

تشکّر

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

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

لینک به ارسال

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

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

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

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

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

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

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

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

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