رفتن به مطلب

صفحه آرشیو برای پست سفارشی


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

سلام

بر اساس آموزش های پست سفارشی در [searchInKey]=articles&search_app_filters[tutorials][articles][sortKey]=date&st=25"]اینجا بخش پست سفارشی رو به پیشخوان اضافه کردم و مطلب هم در اون ارسال کردم.الان خود مطلب نمایش داده میشه اما متأسفانه موفق نشدم برای اون یک صفحه ایجاد کنم که همه مطالب پست سفارشی در اون بخش مانند نوشته های یک category نمایش داده بشه.

هر بار هم کدها رو بر اساس آموزش ایجاد می کردم اما صفحه به 404 هدایت می شد.در آخر هم همه رو پاک کردم و خواستم درخواست رو مطرح کنم.

لطفا" راهنمایی کنید که چطور برای اون آرشیو قرار بدم چه مراحلی رو باید انجام بدم تا همه مطالب مانند این آدرس نمونه در اون نمایش داده بشه

www.site.com/صفحه پست سفارشی

لینک به ارسال

ممنون از پاسخ شما، من با شروع آموزش مشکلی ندارم و همه چیز درسته، اما وقتی این آدرس رو به عنوان مثال وارد می کنمhttp://domain.com/learn/ به صفحه اصلی هدایت میشه. یعنی در کل میشه گفت چیزی در مورد صفحه پست سفارشی نمیاد.

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

مثلا"


http://domain.com/learn/ارسال اول پست سفارشی

اگر ممکنه یه کم به زبان مبتدی و مرحله ای بهم بگید چون من زیاد وارد نیستم

لینک به ارسال

با پوسته پیشفرض تست کنید

شما برای هدایت 404 افزونه یا کدی استفاده کردید؟

لینک به ارسال

پوسته رو باید ببینید چه کدی قرار داده شده

چون پوسته پیشفرض کدهای استانداردی دارد و چنین مشکلی حتما ندارد

در حالت غیرفعال بودن افزونه ها هم تست کنید

لینک به ارسال

آقای پارسا افزونه ها رو هم تست کردم و بازهم همین مشکل بود. نمی دونم وقتی که مطلب پست سفارشی نمایش داده میشه، چرا آدرس صفحه پست سفارشی نمایش داده نمیشه، یعنی فکر کنم اگر بهم بگید غیر از مرحله شروع کار دیگه ای هم لازم هست انجام بدم ،شاید بهتر بتونم به نتیجه برسم.

لینک به ارسال

بعد از تابع ٰregister_post_type

این کد را قرار دهید

یا در انتهای تابع

flush_rewrite_rules();

در کل مشکلی نمیبینم

لینک به ارسال

با اون روش هم نشد، اجازه بدید کدها رو اینجا بذارم

یه فایل ایجاد کردم به اسم به عنوان مثال functions_learn.php

با این کدها


$labels = array(
'name' => '‌آموزش',
'singular_name' => 'آموزش',
'add_new' => 'افزودن آموزش',
'add_new_item' => 'افزودن آموزش جدید',
'edit_item' => 'ویرایش آموزش',
'new_item' => 'آموزش جدید',
'view_item' => 'نمایش آموزش',
'search_items' => 'جستجوی آموزش',
'not_found' => 'مطلب آموزشی یافت نشد',
'not_found_in_trash' => '‌آموزشی در زباله‌دان یافت نشد',
'parent_item_colon' => 'آموزش',
'menu_name' => 'آموزش',
);
$args = array(
'labels' => $labels,
'label' => 'آموزش',
'hierarchical' => false,
'description' => 'آموزش',
'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats' ), //'page-attributes'
'taxonomies' => array( 'page-category' ),
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 7,
'menu_icon' => get_template_directory_uri() . "/images/blogo.png",
'show_in_nav_menus' => true,
'publicly_queryable' => true,
'exclude_from_search' => true,
'has_archive' => true,
'query_var' => true,
'can_export' => true,
'rewrite' => array('slug' => 'learn'),
'_builtin' => false,
'capability_type' => 'post'
);
register_post_type( 'learn', $args );
$labels = array(
'name' => 'دسته‌ها',
'singular_name' => 'دسته‌ها',
'search_items' => 'جستجوی دسته',
'popular_items' => 'بیشتر استفاده شده',
'all_items' => 'تمام دسته‌ها',
'parent_item' => 'مادر دسته',
'edit_item' => 'ویرایش دسته',
'update_item' => 'بروزرسانی دسته',
'add_new_item' => 'افزودن دسته جدید',
'new_item_name' => 'دسته جدید',
'separate_items_with_commas' => 'جداسازی دسته‌ها با کاما',
'add_or_remove_items' => 'افزودن یا حذف دسته',
'choose_from_most_used' => 'انتخاب از محبوبها'
);
$args = array(
'label' => 'دسته‌',
'labels' => $labels,
'public' => true,
'hierarchical' => true,
'show_ui' => true,
'show_in_nav_menus' => true,
'args' => array( 'orderby' => 'term_order' ),
'rewrite' => array( 'slug' => 'lncat', 'with_front' => true ),
'query_var' => true
);
register_taxonomy( 'lncat', 'learn', $args );

فایل single-learn.php رو هم ایجاد کردم که اون به خوبی کار می کنه

آیا چیزی کم گذاشتم؟ صفحه ای دیگر لازم هست؟

در قسمت دسته هاهم وقتی نمایش رو کلیک می کنم به صفحه 404 میره با این آدرس


http://www.site.com/lncat/اولین ارسال پست سفارشی/

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

شما یک فایل به نام taxonomy-learn.php ایجاد کنید بعد ببینید وقتی روی کل موضوع کلیک میکنید همه رو میاره یا نه ؟ برای تست داخل این فایل یک متن بنویسید

راستی منم مشکل 404 رو داشتم که دوست عزیزم آقا پارسا کمک کرد و حل کردیم این پست رو بخونید شاید بتونید مشکلتون رو حل کنید

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

یک فایل به همین اسم با این کدها ساختم بدون هیچ تغییری


<div class="post-items">
<?php
if(!empty($wp->query_vars['lncat'])){
$terms = $wp->query_vars['lncat'];
$taxonomy = 'lncat';
}
if(!empty($wp->query_vars['lntag'])){
$terms = $wp->query_vars['lntag'];
$taxonomy = 'lntag';
}
$paged = ($wp->query_vars['paged']) ? $wp->query_vars['paged'] : 1;
$posts_per_page = get_option('posts_per_page');
$args = array(
'post_type' => 'learn',
'posts_per_page' => $posts_per_page,
'paged' => $paged,
'tax_query' => array(
array(
'taxonomy' => $taxonomy,
'field' => 'slug',
'terms' => $terms
)
)
);
// save wp_query object
$tmp_query = $wp_query;
// Reset Post Data
wp_reset_postdata();
// Reset Query
wp_reset_query();
$the_query = new WP_Query( $args );
if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post();
?>
<div class="post-item">
<h2 class="title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<div class="post-body">
<?php the_content("ادامه مطلب ..."); ?>
</div>
<div class="info">
<?php echo get_the_term_list( $post->ID, 'lncat', '', ', ', '' ); ?>
</div>
</div>
<?php endwhile; ?>
<div class="clear-bar"></div>
<?php next_posts_link('مطالب قديمي'); ?>   
<?php previous_posts_link('مطالب جديد'); ?>
<?php
else:
?>
<div class="post-item">
<h2 class="title">مطلبی پیدا نشد</h2>
<div class="post-body">
در این موضوع مطلبی برای نمایش وجود ندارد!
</div>
</div>
<?php
endif;
// Reset Post Data
wp_reset_postdata();
// Reset Query
wp_reset_query();
// load temp query
$wp_query = $tmp_query;
?>
</div>

روی دسته کلیک کردم، با همون آدرس وارد صفحه اصلی شد، یعنی نه 404 نه ریدایرکت ، بلکه با خود آدرس دسته پست سفارشی


www.site.com/lncat/آخرین نوشته پست سفارشی(دسته)

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

افزونه گفته شده در آموزش را نصب کنید

وارد بخش پیوند یکتا شوید

و ذخیره تنظیمات

لینک به ارسال

یک فایل به همین اسم با این کدها ساختم بدون هیچ تغییری


<div class="post-items">
<?php
if(!empty($wp->query_vars['lncat'])){
$terms = $wp->query_vars['lncat'];
$taxonomy = 'lncat';
}
if(!empty($wp->query_vars['lntag'])){
$terms = $wp->query_vars['lntag'];
$taxonomy = 'lntag';
}

دوست عزیز شما میفرمائید اسم پست سفارشیم learn هست بعد میرید توی فایل taxonomy-learn.php به جای قرار دادن learn lمینویسید

lncat

?

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

افزنه رو هم نصب کردم و پیوند یکتا رو روی /%postname%/ گذاشتم نشد، با %categore%/%postname%/ هم درست نشد، اما این بار به جای اینکه مثل حالت قبل با همون آدرس ولی در صفحه اصلی باشه، به 404 میره

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

دوست عزیز شما میفرمائید اسم پست سفارشیم learn هست بعد میرید توی فایل taxonomy-learn.php به جای قرار دادن learn lمینویسید

lncat

?

این کار رو هم انجام دادم، اما درست نشد.

من که مشکلی با مطالب قرار گرفته در پست سفارشی ندارم، در این صورت آیا افزونه هم به کار میاد؟

لینک به ارسال

افزنه رو هم نصب کردم و پیوند یکتا رو روی /%postname%/ گذاشتم نشد، با %categore%/%postname%/ هم درست نشد، اما این بار به جای اینکه مثل حالت قبل با همون آدرس ولی در صفحه اصلی باشه، به 404 میره

شما پیوند یکتا رو روی حالت پیشفرض قرار دهید ببینید کار میکنه ؟؟

لینک به ارسال

سلام، بله طبق توصیه شما این کار رو هم انجام دادم، اما نشد.

آیا قرار دادن کد

taxonomy-learn.php لازم هست؟ چون من دسته بندی رو لازم ندارم و فقط می خوام در آدرس

domain.com/learn همه نوشته های پست سفارشی رو نشون بده.مثل یک آرشیو.

در آموزش هم نوشته که همین کار ها کافیه برای اون صفحه

آیا لازمه یک فایل به اسم learn.php ایجاد کنم و کد صفحه category رو در اون کپی کنم تا بر این اساس همه نوشته های پست سفارشی نمایش داده بشه؟

لینک به ارسال

سلام، بله طبق توصیه شما این کار رو هم انجام دادم، اما نشد.

آیا قرار دادن کد

taxonomy-learn.php لازم هست؟ چون من دسته بندی رو لازم ندارم و فقط می خوام در آدرس

domain.com/learn همه نوشته های پست سفارشی رو نشون بده.مثل یک آرشیو.

در آموزش هم نوشته که همین کار ها کافیه برای اون صفحه

آیا لازمه یک فایل به اسم learn.php ایجاد کنم و کد صفحه category رو در اون کپی کنم تا بر این اساس همه نوشته های پست سفارشی نمایش داده بشه؟

برای داشتن آرشیو می تونید archive-[post_TYPE].php را با کمک archive.php خودتون بسازید و بعد از ساخت فاتیل یکبار پیوند یکتا را ذخیره سازی کنید ساختار پیوند حتما باید


%postname%

باشه ولی بعد از اینکه ساختار شناخته شد می تونید ساختارش رو تغییر بدید تا صفحات از نشانی های جدید به قبلی ری دایرکت بشند

لینک به ارسال

این کار رو هم انجام دادم، اما مطمئنم درست انجام ندادم

یک فایل به نام archive-learn.php ساختم و کد آرشیو رو در اون قرار دادم ،،پیوند یکتا رو هم طبق راهنمایی انجام دادم اما با وارد کردن آدرس

www.site.com/learn/archive-learn

یا

www.site.com/archive-learn

به صفحه 404 میره

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


<?php get_header();?>
<div class="content" id="page-wrap">
<!-- Content Right -->
<div class="content-right category" id="categoryTwo">
<ul>
<?php
//$query = new WP_Query( array('showposts' => 3 , 'cat' => $category->term_id) );
if ( have_posts() ) {
$c = 0;
while ( have_posts() ) {
$c++;
the_post();
echo '<li>';

echo '<div class="text-category" >';

if ( has_post_thumbnail() ) { the_post_thumbnail( 'post_thumb_one' ); }
echo '<a href="'.get_permalink($post->ID).'" class="font-face2">'. get_the_title() .'</a>';
echo '<p>';
the_excerpt();
echo '</p>';

echo '<div class="detailbox">
<a href="'.get_permalink($post->ID).'" class="font-face">ادامه مطلب</a>
<span class="author">نوشته‌ی: <span>';
echo get_the_author();

echo '</span> - ';
the_time('d M y');
echo '</span>
</div>';

echo '</div></li>';
}
}else{
echo 'درخواست شما نتیجه ای ندارد';
}
?>

</ul>
<?php require_once("page_navi.php"); ?>
</div>
<!-- End Content Right -->
<?php get_sidebar("category"); ?>
<div class="clear"></div>
</div>
</div>
<!-- End Wrapper -->
<?php get_footer() ?>

لینک به ارسال

خوب نباید با وارد کردن این آدرس وارد بشه

فرضا دسته بندی book که برای پستهای عادی به صورت

site.com/book

به صفحه آرشیوش می ره برای پست تایپ شما به صورت

site.com/learn/book

باز می شه

لینک به ارسال

طبق توصیه شما در این پست و همچنین بر اساس های کدهای پست قبلی ام یک آرشیو با این عنوان ساختم archives-learn.php اما وقتی این آدرس رو وارد می کنم؛ وارد صفحه مربوطه نمیشه، من فقط یک آرشیو از پست های سفارشی می خوام، آیا لازم هست در کدهای آرشیو تغییراتی اعمال بشه؟

لینک به ارسال

این را امتحان کنید


<a href="<?php echo get_post_type_archive_link( 'learn' ); ?>">Learn</a>

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

این فایل

archives-learn.php را به

archive-learn.php تغییر نام بدید و در پوشه قالب قرارشبدید (کپی کدهای archive.php داخلش باشه)

لینک به ارسال

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

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

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

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

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

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

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

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

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