رفتن به مطلب

فراخوانی دسته فرزند در وردپرس


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

سلام. دوستان من با کد زیر می خواستم نام دسته ی پست مورد نظر را بالای عنوان مطلب فراخوانی کنم. ولی متاسفانه این کد هم دسته مادر و هم دسته ی فرزند را فراخوانی میکند. چندان به php آشنا نیستم. چه تغییری باید بدم که تنها نام دسته ی فرزند را نشون بده؟ 

<?php the_category($separator, $parents, $post_id); ?>


 

لینک به ارسال

سلام و درود

 

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

موفق باشید

لینک به ارسال
در 21 دقیقه قبل، naghmesara گفته است :

سلام و درود

 

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

موفق باشید

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

 

تابع زیر را درون فایل functions.php قالبتون قرار بدید.

<?php
function child_cat ($pid) {
	$cat_arr = wp_get_post_categories ($pid);
    $child_id = max ($cat_arr);
    $child_name = get_the_category_by_ID ($child_id);
    $child_link = get_category_link ($child_id);
	echo '<a href="'. $child_link .'" rel="category tag">'. $child_name .'</a>';
}
?>

و جهت نمایش آخرین دسته فرزند در فایل single.php کد زیر را قرار دهید.

<?php child_cat ($post->ID); ?>

 

ویرایش شده توسط miraziz
لینک به ارسال

درود مجدد

 

بله این کد در 90 درصد شرایط کار میکنه ولی توی بعضی نوع از دسته بندی ها کم میاره.

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

 

پاینده باشید

لینک به ارسال
در هم اکنون، miraziz گفته است :

فقط در همین کد از مجموع مثلا 4 زیردسته، اگر بخواهم دسته آخر و یک دسته قبل تر از اون را نشون بده راهی است؟

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

 

موفق باشید

ویرایش شده توسط naghmesara
لینک به ارسال
در 2 ساعت قبل، naghmesara گفته است :

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

 خیلی ممنون. به اندازه ی کافی کمک کردین. لطف بزرگی بود
فقط من چگونه می تونم داخل کد زیر یک کلاس اضافه کنم؟
 

<?php child_cat ($post->ID); ?>

 

لینک به ارسال

درود مجدد

 

function child_cat ($pid, $class_name) {
    $cat_arr = wp_get_post_categories ($pid);
    $child_id = max ($cat_arr);
    $child_name = get_the_category_by_ID ($child_id);
    $child_link = get_category_link ($child_id);
    if ($class_name)
        echo '<a href="'. $child_link .'" class="'. $class_name .'" rel="category tag">'. $child_name .'</a>';
    else
        echo '<a href="'. $child_link .'" rel="category tag">'. $child_name .'</a>';
}

 

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

 

<?php child_cat (get_the_ID(), 'my-css-class'); ?>

 

موفق باشید

 

پ.ن: در حلقه اصلی وردپرس

get_the_ID();

و

$post->ID;

هر دو یک مقدار را برمیگردانند.

ویرایش شده توسط naghmesara
لینک به ارسال
در 16 دقیقه قبل، naghmesara گفته است :

هر دو یک مقدار را برمیگردانند.

من در فایل css  یک کلاس به نام poetname ایجاد کردم و کدهایی که شما قرار دادین را به صورت زیر تغییر دادم ولی هیچ تاثیری نداشت

function child_cat ($pid, $poetname) {
    $cat_arr = wp_get_post_categories ($pid);
    $child_id = max ($cat_arr);
    $child_name = get_the_category_by_ID ($child_id);
    $child_link = get_category_link ($child_id);
    if ($poetname)
        echo '<a href="'. $child_link .'" class="'. $poetname.'" rel="category tag">'. $child_name .'</a>';
    else
        echo '<a href="'. $child_link .'" rel="category tag">'. $child_name .'</a>';
}
<?php child_cat (get_the_ID(), 'poetname'); ?>

 

لینک به ارسال

درود مجدد

 

function child_cat ($pid, $class_name) {
    $cat_arr = wp_get_post_categories ($pid);
    $child_id = max ($cat_arr);
    $child_name = get_the_category_by_ID ($child_id);
    $child_link = get_category_link ($child_id);
    if ($class_name)
        echo '<a href="'. $child_link .'" class="'. $class_name .'" rel="category tag">'. $child_name .'</a>';
    else
        echo '<a href="'. $child_link .'" rel="category tag">'. $child_name .'</a>';
}


 

کد بالا رو بدون هیچ تغییری در functions.php قرا دهید.

 

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

 

<?php child_cat (get_the_ID(), 'my-css-class'); ?>

 

و مقدار my-css-class را با نام کلاس خود جایگزین کنید.

 

پ.ن: اگر استایل اعمال نشد احتمالا فایل css شما توی مرورگرتون کش شده که یه بار صفحه سایتتون رو توی مرورگر با

Ctrl + F5

رفرش کنید انشاالله درست میشه.

 

موفق باشید

ویرایش شده توسط naghmesara
لینک به ارسال
در 6 دقیقه قبل، naghmesara گفته است :

پ.ن: اگر استایل اعمال نشد احتمالا فایل css شما توی مرورگرتون کش شده که یه بار صفحه سایتتون رو توی مرورگر با

 

کارهایی که کردین را انجام دادم. و هم با F5 رفرش کردم و هم کش را خالی کردم. ولی استایل های کلاس اعمال نشد

لینک به ارسال

درود مجدد

 

احتمالا مشکل از همون کش مرورگر هست.

l8k_a.jpg

استایل اعمال شده و بسیار هم زیباست.

 

پاینده باشید

لینک به ارسال
در 18 ساعت قبل، naghmesara گفته است :

درود مجدد

 

احتمالا مشکل از همون کش مرورگر هست.

سلامی دوباره. فقط ببخشین میشه برای ایک استثنایی هم تعریف کرد. یعنی مثلا اگر دسته ی فلان (با آیدی 132) بود، اون را نمایش ندهد

لینک به ارسال
در 53 دقیقه قبل، miraziz گفته است :

سلامی دوباره. فقط ببخشین میشه برای ایک استثنایی هم تعریف کرد. یعنی مثلا اگر دسته ی فلان (با آیدی 132) بود، اون را نمایش ندهد

سلام

یعنی مثلا آیدی 132 بود هیچی برنگردونه؟

لینک به ارسال
در 49 دقیقه قبل، naghmesara گفته است :

سلام

یعنی مثلا آیدی 132 بود هیچی برنگردونه؟

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

ویرایش شده توسط miraziz
لینک به ارسال

درود مجدد

 

function child_cat ($pid, $class_name, $exclude) {
    $cat_arr = wp_get_post_categories ($pid);
    $child_id = max ($cat_arr);
    if ($exclude)
        if (in_array($child_id, $exclude))
            return;
    $child_name = get_the_category_by_ID ($child_id);
    $child_link = get_category_link ($child_id);
    if ($class_name)
        echo '<a href="'. $child_link .'" class="'. $class_name .'" rel="category tag">'. $child_name .'</a>';
    else
        echo '<a href="'. $child_link .'" rel="category tag">'. $child_name .'</a>';
}

 

موراد استثنا رو به صورت آرایه ای از آیدی دسته بندی ها به آرگومان سوم تابع بدید به صورت زیر:

 

<?php child_cat (get_the_ID(), 'my-css-class', [130,131,132]); ?>

 

مثال بالا برای پست هایی که آخرین دسته فرزندشون آیدیش 130 و 131 و 132 هست هیچی بر نمی گردونه اگر هم فقط همون مورد آیدی 132 هست به شکل زیر فراخوانی کنید:

 

<?php child_cat (get_the_ID(), 'my-css-class', [132]); ?>

 

موفق باشید

لینک به ارسال
نقل قول

خیلی خیلی ممنون. عالی کار کرد.

خواهش میکنم.

نقل قول

این تاپیک خودش یک آموزش جامع تو همین زمینه شد. 

انشاالله همین طور باشه که می‌فرمایید.

لینک به ارسال

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

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

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

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

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

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

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

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

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