Monica 322 ارسال شده در دی 96 گزارش بازنشر ارسال شده در دی 96 سلام من برای نمایش نام و لینک دسته بندی پست هر راهی توو نت بود رفتم از the category تا single cat title و غیره . من برای استفاده در خارج از حلقه ، در single.php میخوام. نام دسته بندی لینک دسته بندی مادر که پست داخلش قرار داره (بدون تگ a) لینک دسته بندی فرزند که پست داخلش قرار داره (بدون تگ a) خروجی اینطور باشه: http://sitename.com/iran نقل قول لینک به ارسال
فرهاد حسن پور 246 ارسال شده در دی 96 گزارش بازنشر ارسال شده در دی 96 سلام ببنید این بدردتون میخوره. https://codex.wordpress.org/Function_Reference/get_category_link 1 نقل قول لینک به ارسال
Monica 322 ارسال شده در دی 96 مالک گزارش بازنشر ارسال شده در دی 96 (ویرایش شده) در 8 دقیقه قبل، farhad.in گفته است : سلام ببنید این بدردتون میخوره. https://codex.wordpress.org/Function_Reference/get_category_link ممنون ، امتحان کردم ، هیچ خروجی نمیده get_category_link( $category_id ); ویرایش شده دی 96 توسط nazanin123 نقل قول لینک به ارسال
فرهاد حسن پور 246 ارسال شده در دی 96 گزارش بازنشر ارسال شده در دی 96 در هم اکنون، nazanin123 گفته است : ممنون ، امتحان کردم ، هیچ خروجی نمیده get_category_link( $category_id ); باید id دسته رو به عنوان آرگومان ورودی بهش بدید. مثلا get_category_link( '1' ); // output: http://domain.com/category/name نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در دی 96 گزارش بازنشر ارسال شده در دی 96 سلام و درود وقتی داخل حلقه single.php نباشید آیدی پست رو باید این شکلی بگیرید. <?php $post_id = get_queried_object_id(); ?> وقتی آیدی پست رو بدست آوردید از روی آیدی پست همه اطلاعات پست رو میتونید بدست بیارید. موفق باشید 1 نقل قول لینک به ارسال
Monica 322 ارسال شده در دی 96 مالک گزارش بازنشر ارسال شده در دی 96 در 5 دقیقه قبل، farhad.in گفته است : باید id دسته رو به عنوان آرگومان ورودی بهش بدید. مثلا get_category_link( '1' ); // output: http://domain.com/category/name این خروجی لینک دسته بندی با آیدی "1" هست ، من میخوام دسته بندی که پست داخلش هست رو خروجی بده ، این کد قراره بره در single.php . کد داینامیک میخوام ، نقل قول لینک به ارسال
Monica 322 ارسال شده در دی 96 مالک گزارش بازنشر ارسال شده در دی 96 در 12 دقیقه قبل، mehran-b گفته است : سلام و درود وقتی داخل حلقه single.php نباشید آیدی پست رو باید این شکلی بگیرید. <?php $post_id = get_queried_object_id(); ?> وقتی آیدی پست رو بدست آوردید از روی آیدی پست همه اطلاعات پست رو میتونید بدست بیارید. موفق باشید یک مثال میزنید؟ من نام فارسی دسته بندی رو با کد زیر گرفتم ، از صبح انقدر گشتم هنگ کردم <?php echo get_the_category( $id )[0]->name;?> نقل قول لینک به ارسال
فرهاد حسن پور 246 ارسال شده در دی 96 گزارش بازنشر ارسال شده در دی 96 (ویرایش شده) کل کدش رو براتون نوشتم و میتونید در فایل single.php مورد استفاده قرار دهید. <?php global $post; $postcat = get_the_category( $post->ID ); if ( ! empty( $postcat ) ) { $cat_id = $postcat[0]->term_id; echo get_category_link( $cat_id ); } ?> ویرایش شده دی 96 توسط farhad.in اصلاح کد 1 نقل قول لینک به ارسال
Monica 322 ارسال شده در دی 96 مالک گزارش بازنشر ارسال شده در دی 96 در 7 دقیقه قبل، farhad.in گفته است : <?php global $post; $postcat = get_the_category( $post->ID ); if ( ! empty( $postcat ) ) { $cat_id = $postcat[0]->term_id; echo get_category_link( $cat_id ); } ?> ممنون ، دسته فرزند رو خروجی داد بصورت sitename.com/iran/news/teh اگر بخوام بصورت زیر بشه چطوری میشه (دسته مادر) sitename.com/iran نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در دی 96 گزارش بازنشر ارسال شده در دی 96 درود مجدد تابع زیر رو میذارید توی functions.php قالبتون: function get_parent_category() { global $post; $categories = get_the_category($post->ID); $parent_category = array(); foreach($categories as $category) { if($category->parent === 0) { $parent_id[] = $category->term_id; } } if($parent_id === array()) { return false; } if(count($parent_id) > 1) { $parent_id = min($parent_id); } return array( 'name' => get_cat_name($parent_id), 'link' => get_category_link($parent_id) ); } سپس به شکل زیر ازش استفاده میکنید: <?php $parent = get_parent_category(); if($parent !== false) { $name = $parent['name']; $link = $parent['link']; } ?> موفق باشید 1 نقل قول لینک به ارسال
فرهاد حسن پور 246 ارسال شده در دی 96 گزارش بازنشر ارسال شده در دی 96 (ویرایش شده) در 8 دقیقه قبل، nazanin123 گفته است : اگر بخوام بصورت زیر بشه چطوری میشه (دسته مادر) متونید با استفاده از تابع exploade رشته رو تکه تکه کنید و بخشایی که نیاز دارید استفاده کنید. <?php $custom_cat_url = explode('/', get_category_link( $cat_id )); echo $custom_cat_url[0].'//'.$custom_cat_url[1].'/'.$custom_cat_url[2].'/'.$custom_cat_url[3]; ویرایش شده دی 96 توسط farhad.in 1 نقل قول لینک به ارسال
Monica 322 ارسال شده در دی 96 مالک گزارش بازنشر ارسال شده در دی 96 در 16 ساعت قبل، mehran-b گفته است : درود مجدد تابع زیر رو میذارید توی functions.php قالبتون: سپس به شکل زیر ازش استفاده میکنید: <?php $parent = get_parent_category(); if($parent !== false) { $name = $parent['name']; $link = $parent['link']; } ?> موفق باشید سلام و تشکر از شما نه متاسفانه جواب نداد ، هیچ خروجی نداره ، چند روش مختلف امتحان کردم ، هیچی برنمیگردونه. من میخوام در یک json schema در single.php استفاده کنم . میخوام وقتی نوشته در دسته بندی با آدرس زیر هست http://sitenam.com/iran/video/video-iran/نام-نوشته بتونم از دسته بندیش به شکل زیر خروجی بگیرم //خروجی اول http://sitenam.com/iran/ //خروجی دوم http://sitenam.com/iran/video/ //خروجی سوم http://sitenam.com/iran/video/video-iran/ باتشکر مجدد از شما نقل قول لینک به ارسال
Monica 322 ارسال شده در دی 96 مالک گزارش بازنشر ارسال شده در دی 96 در 16 ساعت قبل، farhad.in گفته است : متونید با استفاده از تابع exploade رشته رو تکه تکه کنید و بخشایی که نیاز دارید استفاده کنید. <?php $custom_cat_url = explode('/', get_category_link( $cat_id )); echo $custom_cat_url[0].'//'.$custom_cat_url[1].'/'.$custom_cat_url[2].'/'.$custom_cat_url[3]; سلام و تشکر فقط مقدار [1] برمیگردونه ! بقیه خالی هستن، حتی اعداد رو جابجا کردم ، ولی فقط 1 درست برمیگردونه ، میخوام وقتی نوشته در دسته بندی با آدرس زیر هست http://sitenam.com/iran/video/video-iran/نام-نوشته بتونم از دسته بندیش به شکل زیر خروجی بگیرم //خروجی اول http://sitenam.com/iran/ //خروجی دوم http://sitenam.com/iran/video/ //خروجی سوم http://sitenam.com/iran/video/video-iran/ باتشکر مجدد از شما نقل قول لینک به ارسال
فرهاد حسن پور 246 ارسال شده در دی 96 گزارش بازنشر ارسال شده در دی 96 کدایی که دادم بهتون رو تست کردم و درست کار میکنند، یکم دقت کنید متوجه میشید. اینم نمونه خروجی کدهایی که بهتون دادم. 1 نقل قول لینک به ارسال
فرهاد حسن پور 246 ارسال شده در دی 96 گزارش بازنشر ارسال شده در دی 96 کل کدهایی که باید استفاده کنید رو قرار میدم چون متوجه شدم شما فقط یک تیکه از کدی که دادمو استفاده کردید. <?php global $post; $postcat = get_the_category( $post->ID ); if ( ! empty( $postcat ) ) { $cat_id = $postcat[0]->term_id; $custom_cat_url = explode('/', get_category_link( $cat_id )); } echo $custom_cat_url[0].'//'.$custom_cat_url[1].$custom_cat_url[2].'/'.$custom_cat_url[3].'/'.$custom_cat_url[4]."<hr>"; echo $custom_cat_url[0].'//'.$custom_cat_url[1].$custom_cat_url[2].'/'.$custom_cat_url[3].'/'.$custom_cat_url[4].'/'.$custom_cat_url[5]."<hr>"; echo $custom_cat_url[0].'//'.$custom_cat_url[1].$custom_cat_url[2].'/'.$custom_cat_url[3].'/'.$custom_cat_url[4].'/'.$custom_cat_url[5].'/'.$custom_cat_url[6]."<hr>"; ?> فقط باید حواستون باشه که به تعداد زیر دسته میتونید هر چندتا که خواستید نشون بدید. برای راحتی خودتون کدهای بالا رو تبدیل به تابع کنید و ادرس لینک دسته رو بدید و به عنوان خروجی بهتون آرایهای از لینکهای دسته و زیر دسته بده. موفق باشید. 1 نقل قول لینک به ارسال
Monica 322 ارسال شده در دی 96 مالک گزارش بازنشر ارسال شده در دی 96 در 23 ساعت قبل، farhad.in گفته است : کل کدهایی که باید استفاده کنید رو قرار میدم چون متوجه شدم شما فقط یک تیکه از کدی که دادمو استفاده کردید. <?php global $post; $postcat = get_the_category( $post->ID ); if ( ! empty( $postcat ) ) { $cat_id = $postcat[0]->term_id; $custom_cat_url = explode('/', get_category_link( $cat_id )); } echo $custom_cat_url[0].'//'.$custom_cat_url[1].$custom_cat_url[2].'/'.$custom_cat_url[3].'/'.$custom_cat_url[4]."<hr>"; echo $custom_cat_url[0].'//'.$custom_cat_url[1].$custom_cat_url[2].'/'.$custom_cat_url[3].'/'.$custom_cat_url[4].'/'.$custom_cat_url[5]."<hr>"; echo $custom_cat_url[0].'//'.$custom_cat_url[1].$custom_cat_url[2].'/'.$custom_cat_url[3].'/'.$custom_cat_url[4].'/'.$custom_cat_url[5].'/'.$custom_cat_url[6]."<hr>"; ?> فقط باید حواستون باشه که به تعداد زیر دسته میتونید هر چندتا که خواستید نشون بدید. برای راحتی خودتون کدهای بالا رو تبدیل به تابع کنید و ادرس لینک دسته رو بدید و به عنوان خروجی بهتون آرایهای از لینکهای دسته و زیر دسته بده. موفق باشید. سلام و تشکر فراوان این شرط رو چجوری میشه برقرار کرد که اگر خالی بود هیچی برنگرده؟ if(تمام موارد زیر موجود بود یعنی دسته اول){ echo $custom_cat_url[0].'//'.$custom_cat_url[1].$custom_cat_url[2].'/'.$custom_cat_url[3]."<hr>"; ?> } //شرط دوم if(اگر تمام موارد زیر موجود بود یعنی زیر دسته اول){ echo $custom_cat_url[0].'//'.$custom_cat_url[1].$custom_cat_url[2].'/'.$custom_cat_url[3].'/'.$custom_cat_url[4]."<hr>"; ?> } //شرط سوم if(تمام موارد زیر موجود بود یعنی زیر دسته دوم){ echo $custom_cat_url[0].'//'.$custom_cat_url[1].$custom_cat_url[2].'/'.$custom_cat_url[3].'/'.$custom_cat_url[4].'/'.$custom_cat_url[5]."<hr>"; ?> } //و الی آخر نقل قول لینک به ارسال
فرهاد حسن پور 246 ارسال شده در دی 96 گزارش بازنشر ارسال شده در دی 96 (ویرایش شده) همونطور که میدونید مقدار متغییر custom_cat_url$ یک آرایه هست و سه پارامتر اول اون مربوط میشه به آدرس سایت. این عدد سه یادتون باشه. خب حالا با استفاده از تابع count میتونی تعداد مقادیر آرایه custom_cat_url$ رو بدست بیاری و حاصلش رو منهای ۳ کنی مقداری که بدست میاد تعداد دسته و زیر دسته میباشد. اگر مقدار حاصل صفر بود یعنی هیچ دسته و زیر دسته ای نداره. بعد میتونی با استفاده از حلقه foreach تا زمانی که دسته و زیر دسته وجود داره لینک دسته رو بهتون بده. تمام ویرایش شده دی 96 توسط farhad.in 1 نقل قول لینک به ارسال
Monica 322 ارسال شده در دی 96 مالک گزارش بازنشر ارسال شده در دی 96 در 18 دقیقه قبل، farhad.in گفته است : همونطور که میدونید مقدار متغییر custom_cat_url$ یک آرایه هست و سه پارامتر اول اون مربوط میشه به آدرس سایت. این عدد سه یادتون باشه. خب حالا با استفاده از تابع count میتونی تعداد مقادیر آرایه custom_cat_url$ رو بدست بیاری و حاصلش رو منهای ۳ کنی مقداری که بدست میاد تعداد دسته و زیر دسته میباشد. اگر مقدار حاصل صفر بود یعنی هیچ دسته و زیر دسته ای نداره. بعد میتونی با استفاده از حلقه foreach تا زمانی که دسته و زیر دسته وجود داره لینک دسته رو بهتون بده. تمام راه کوتاهتر و ساده تری برای بدست آوردن مقدار href دسته نیست؟ که نخوایم explode کنیم؟ فکر کنم توو سایت با بازدید بالا فشار به سرور زیاد باشه.. میتونیم شرط رو اینطور تعریف کنیم؟ if ( ! empty( $custom_cat_url[5] ) ) { echo $custom_cat_url[0].'//'.$custom_cat_url[1].$custom_cat_url[2].'/'.$custom_cat_url[3].'/'.$custom_cat_url[4].'/'.$custom_cat_url[5]."<hr>"; } نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در دی 96 گزارش بازنشر ارسال شده در دی 96 درود مجدد نقل قول راه کوتاهتر و ساده تری برای بدست آوردن مقدار href دسته نیست؟ که نخوایم explode کنیم؟ href دسته های یه پست که مشخصه من نمی فهمم شما هدفتون چیه. اگر هدفتون اینه آدرس دسته مادر و همه فرزند ها رو لیست کنید ابتدا آدرس همه دسته های پست رو میگیرید اونی که کوتاه تره میشه آدرس مادر و به ترتیب هر چقدر بلندتر میشه میشه آدرس زیر دسته ها. 1 نقل قول لینک به ارسال
فرهاد حسن پور 246 ارسال شده در دی 96 گزارش بازنشر ارسال شده در دی 96 در 54 دقیقه قبل، nazanin123 گفته است : راه کوتاهتر و ساده تری برای بدست آوردن مقدار href دسته نیست؟ که نخوایم explode کنیم؟ فکر کنم توو سایت با بازدید بالا فشار به سرور زیاد باشه.. سروری که نتونه یدونه explode رو هندل کنه سرور نیست !!! راه دیگهای هم میشه پیدا کرد؛ بهتره همون کدی که بهتون دادمو تابع کنید مورد استفاده قرار بدید داخل کدهای وردپرس و حتی افزونهها کدهای سنگین تر از exploade هم وجود داره :-) در مورد شرط هم درسته میتونید استفاده کنید/. 1 نقل قول لینک به ارسال
Monica 322 ارسال شده در دی 96 مالک گزارش بازنشر ارسال شده در دی 96 در 51 دقیقه قبل، mehran-b گفته است : درود مجدد href دسته های یه پست که مشخصه من نمی فهمم شما هدفتون چیه. اگر هدفتون اینه آدرس دسته مادر و همه فرزند ها رو لیست کنید ابتدا آدرس همه دسته های پست رو میگیرید اونی که کوتاه تره میشه آدرس مادر و به ترتیب هر چقدر بلندتر میشه میشه آدرس زیر دسته ها. باسلام مجدد ، کد کامل رو براتون میذارم، ببینید کجا میخوام خروجی بگیرم، هر دو مقدار id و name رو نمیتونم خروجی بگیرم! ببینید پله پله اضافه میشه . <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement": [ <? if (اگر دسته اول خالی نیست){ ?> { "@type": "ListItem", "position": 1, "item": { "@id": "https://mysite.com/video/", "name": "ویدیو", "image": "https://mysite.com/cat.png" } }, <? } if (اگر دسته فرزند خالی نیست){ ?> { "@type": "ListItem", "position": 2, "item": { "@id": "https://mysite.com/video/ir/", "name": "ویدیو ایران", "image": "https://mysite.com/cat.png" } }, <? } if (اگر دسته فرزند دوم خالی نیست){ ?> { "@type": "ListItem", "position": 2, "item": { "@id": "https://mysite.com/video/ir/teh/", "name": "ویدیو تهران", "image": "https://mysite.com/cat.png" } } <? } ?> ] } </script> نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در دی 96 گزارش بازنشر ارسال شده در دی 96 درود مجدد راه کاری که به نظر من رسید اینه. تابع زیر رو تیو فیال functions.php قالبتون میذارید: function calcPosition($url) { $parse = wp_parse_url($url); $path = trim($parse['path'], "/"); $count = substr_count($path, "/"); if(strpos($path, "category") !== false) { return $count; } else { return $count + 1; } } سپس کد زیر رو در فایل single.php استفاده میکنید: <?php $cats = get_the_category(get_queried_object_id()); $itemListElement = array(); foreach($cats as $cat) { $link = get_category_link($cat->term_id); $position = calcPosition($link); $itemListElement[$position - 1] = array( '@type' => 'ListItem', 'position' => $position, 'item' => array( '@id' => $link, 'name' => get_cat_name($cat->term_id) ) ); } $data = array( '@context' => 'http://schema.org', '@type' => 'BreadcrumbList', 'itemListElement' => $itemListElement ); echo '<script type="application/ld+json">'; echo json_encode($data); echo '</script>'; ?> کد فوق میاد برای شما اون رشته JSON رو میسازه. موفق باشید 1 نقل قول لینک به ارسال
Monica 322 ارسال شده در دی 96 مالک گزارش بازنشر ارسال شده در دی 96 در 28 دقیقه قبل، mehran-b گفته است : درود مجدد راه کاری که به نظر من رسید اینه. تابع زیر رو تیو فیال functions.php قالبتون میذارید: سپس کد زیر رو در فایل single.php استفاده میکنید: کد فوق میاد برای شما اون رشته JSON رو میسازه. موفق باشید باتشکر ، پس بصورت عادی نمیشه افزونه ها هم بصورت encode خروجی میدن که گوگل توجهی نمیکنه ، سایت هایی که بصورت عادی استفاده میکنن راحت جواب میگرین توو گوگل "گنجور" رو سرچ کنید توو گوگل ، حتی ورزش سه ، سورس سایتشون هم ببینید. نقل قول لینک به ارسال
mehran-b 2385 ارسال شده در دی 96 گزارش بازنشر ارسال شده در دی 96 در ۱ ساعت قبل، nazanin123 گفته است : باتشکر ، پس بصورت عادی نمیشه افزونه ها هم بصورت encode خروجی میدن که گوگل توجهی نمیکنه ، سایت هایی که بصورت عادی استفاده میکنن راحت جواب میگرین توو گوگل "گنجور" رو سرچ کنید توو گوگل ، حتی ورزش سه ، سورس سایتشون هم ببینید. درود مجدد مظنورتون اینه که JSON ای رو که PHP انکد میکنه رو گوگل نمیخونه؟ اگر منظور اینه صفحه ای رو که دارید توش از این کد استفاده میکنید ارسال کنید آدرسش رو تا خودم چک کنم. چون بعیده گوگل نتونه بخونه این حالت رو. نقل قول لینک به ارسال
Monica 322 ارسال شده در دی 96 مالک گزارش بازنشر ارسال شده در دی 96 در 8 ساعت قبل، mehran-b گفته است : درود مجدد مظنورتون اینه که JSON ای رو که PHP انکد میکنه رو گوگل نمیخونه؟ اگر منظور اینه صفحه ای رو که دارید توش از این کد استفاده میکنید ارسال کنید آدرسش رو تا خودم چک کنم. چون بعیده گوگل نتونه بخونه این حالت رو. سلام خروجی کد شما نتونست لیست کنه کامل <script type="application/ld+json">{"@context":"http:\/\/schema.org","@type":"BreadcrumbList","itemListElement":{"2":{"@type":"ListItem","position":3,"item":{"@id":"http:\/\/www.site.com\/video\/eu-video\/england-video\/","name":"\u0648\u06cc\u062f\u06cc\u0648 \u0627\u0646\u06af\u0644\u06cc\u0633"}}}}</script> نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .