رفتن به مطلب

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


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

سلام

اگه اشتباه نکنم این امکان برای وردپرس هست که بشه برای مطالب متفاوت نحوه نمایش پست ها و استایل بندیشون رو تغییر داد

در اصل در قhلبم سه نوع پست مد نظر دارم ... یکیش همون حالت عادی فایل single هست، دو حالت دیگه زمینه های دلخواهی هستن که میخوام جای content پست نمایش داده بشن که البته دو نوع متفاوت از هم هستن ... چطوری میشه اینکارو کرد؟

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

سلام

خب باید شرط بزارید اگر زمینه دلخواهی ثبت شد چیدمان متفاوتی را به نمایش بزاره که باید php بلد باشید

لینک به ارسال

سلام

خب باید شرط بزارید اگر زمینه دلخواهی ثبت شد چیدمان متفاوتی را به نمایش بزاره که باید php بلد باشید

نمیشه بر اساس دسته بندی اینکارو کرد؟ یا پست تایپ؟ همین روشی که شما گفتید چطوریه؟ چه کد هایی میخواد؟

لینک به ارسال

سلام

برای دسته‌ها و پست‌ تایپ‌ها هم میشه اینکار رو انجام داد

برای نمونه پست‌تایپ نمونه قالب خود وردپرس رو بررسی کنید این قابلیت مد نظرتون رو داره

لینک به ارسال

سلام

برای دسته‌ها و پست‌ تایپ‌ها هم میشه اینکار رو انجام داد

برای نمونه پست‌تایپ نمونه قالب خود وردپرس رو بررسی کنید این قابلیت مد نظرتون رو داره

منظورتون رو درست متوجه نشدم ، منظورم اینه که کاری که خواستم رو به وسیله پست تایپ یا ترجیحا براساس دسته بندی میشه انجام داد؟ مثلا دو تا فایل single دیگه ساخته بشه و بر اساس دسته بندی برای هر پست، یکی از این سینگل ها لود بشه و در اصل single هاس متفاوت برای دسته بندی های مختلف ایجاد بشه... اگه شدنی هست روشش رو لطفا بگید

لینک به ارسال

این کد ها اگه اشتباه نکنم برای ایجاد چند فایل single و نمایش اون ها بر اساس دسته بندیه درسته؟

من متوجه نشدم باید چیکار کنم، اگه میشه یه راهنمایی خودت بکن ... در ضمن این راهی که مد نظرم هست اصولی تره یا استفاده از پست تایپ؟

به هر حال ببخشید که سوال زیاد دارم ... پیشاپیش هم ممنون

لینک به ارسال

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

برای این‌کار می‌تونید بر اساس دسته‌بندی اقدام کنید مثلا دسته فیلم، دسته عکس و دسته صوت

بر این اساس شما شرط تعریف می‌کنید که اگر دسته فیلم بود این کلاس به body اضافه بشه و اگر ...

اگر این روش رو انتخاب کنید، از این طریق می‌بایست اقدام بشه

اول

کد body داخل قالبتون رو به کد زیر تغییر بدید


<body <?php body_class( $class ); ?>>

با این کار تگ body قالبتون بر اساس هر صفحه و برگه و هر حالت کلاس خاص خودش رو داره

بعد برای اینکه بر اساس هر دسته نامک (slug) اون دسته به تگ body اضافه بشه کد زیر رو می‌بایست به قالب‌تون اضافه کنید


// add category nicenames in body and post class
function category_id_class( $classes ) {
global $post;
foreach ( get_the_category( $post->ID ) as $category ) {
$classes[] = $category->category_nicename;
}
return $classes;
}
add_filter( 'post_class', 'category_id_class' );
add_filter( 'body_class', 'category_id_class' );

حالا می‌تونید بر اساس هر دسته استایل مورد نظرتون رو اعمال کنید

اگر دسته فیلم بود استایل بر اساس کلاس body.film تعریف میشه و همین‌طور باقی موارد

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

به این ترتیب که برای تگ body شرط تعریف می‌کنیم که اگر زمینه دلخواه فیلم فعال شده بود کلاس film رو به body اضافه کنه

مثلا:


<body class="<?php $film = get_post_meta( get_the_ID() ); if( isset( $film ) && !empty( $film ) ) { echo "film"; } ?>">

البته میشه این کد رو بر خلاف کد اول هرجایی که نیاز داشتید به غیر از تگ body هم استفاده کنید

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

لینک به ارسال

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

برای این‌کار می‌تونید بر اساس دسته‌بندی اقدام کنید مثلا دسته فیلم، دسته عکس و دسته صوت

بر این اساس شما شرط تعریف می‌کنید که اگر دسته فیلم بود این کلاس به body اضافه بشه و اگر ...

اگر این روش رو انتخاب کنید، از این طریق می‌بایست اقدام بشه

اول

کد body داخل قالبتون رو به کد زیر تغییر بدید


<body <?php body_class( $class ); ?>>

با این کار تگ body قالبتون بر اساس هر صفحه و برگه و هر حالت کلاس خاص خودش رو داره

بعد برای اینکه بر اساس هر دسته نامک (slug) اون دسته به تگ body اضافه بشه کد زیر رو می‌بایست به قالب‌تون اضافه کنید


// add category nicenames in body and post class
function category_id_class( $classes ) {
global $post;
foreach ( get_the_category( $post->ID ) as $category ) {
$classes[] = $category->category_nicename;
}
return $classes;
}
add_filter( 'post_class', 'category_id_class' );
add_filter( 'body_class', 'category_id_class' );

حالا می‌تونید بر اساس هر دسته استایل مورد نظرتون رو اعمال کنید

اگر دسته فیلم بود استایل بر اساس کلاس body.film تعریف میشه و همین‌طور باقی موارد

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

به این ترتیب که برای تگ body شرط تعریف می‌کنیم که اگر زمینه دلخواه فیلم فعال شده بود کلاس film رو به body اضافه کنه

مثلا:


<body class="<?php $film = get_post_meta( get_the_ID() ); if( isset( $film ) && !empty( $film ) ) { echo "film"; } ?>">

البته میشه این کد رو بر خلاف کد اول هرجایی که نیاز داشتید به غیر از تگ body هم استفاده کنید

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

من میخوام که علاوه بر استایل، کد نویسی هم تغییر کنه، مثلا برای فیلم میخوام که اصلا فایل content وجود نداشته باشه، حالا میخواستم ببینم که میشه سه تا فایل single.php ساخت و بر اساس دسته بندی مطلب، یکی از این single ها که مربوط به اون دسته مثلا فیلم هست لود بشه، ممنون برای توضیحاتت اما در خواست من اینه

این فایل single هست :


<div id="content">
<?php if(have_posts()): ?><?php while(have_posts()):the_post(); ?>
<div class="post">
<div class="post-title">
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>

</div>
<div class="content">
<div class="postmetadt">
<ul>
<li class="author"><?php the_author() ?></li>
<li class="date"><?php the_time(__('F j Y','')) ?></li>
<li class="rate"></li>
</ul>
<div class="rate"><?php if(function_exists('the_ratings')) { the_ratings(); } ?></div>
</div>
<?php the_content(''); ?></div>


</div>
<div class="tags"><h3><?php the_tags( __('Tags: ','')); ?></h3></div>
<?php endwhile; ?>
<?php else: ?>
<?php endif; ?>


<div class="mt-info">
<figure class="mt-poster"><?php imdbi('poster',True); ?></figure>
<ul class="imdb-info">
<li><?php
if ( get_field('imdb_link') ) {
echo '
<a href=' . get_field('imdb_link') . ' " target="_blank">IMDB</a>
';
}
?>
</li><br>
<li><?php if(get_field('quality') ) { ?><?php _e('Quality : ', ''); ?><?php echo get_field('quality');?><br><?php } ?></li>
<li><?php _e('Imdb Rating : ', ''); ?><?php imdbi('imdbRating'); ?>/10 <?php _e(' from ', ''); ?><span class="imdbVotes"><?php imdbi('imdbVotes'); ?></span></li><br>
<li><?php _e('Metascore : ', ''); ?><?php imdbi('Metascore'); ?>/100</li><br>
<li><?php _e('Released : ', ''); ?><?php imdbi('Released'); ?></li><br>
<li><?php _e('Genre : ', ''); ?><?php imdbi('Genre'); ?></li><br>
<li><?php _e('Director(s) : ', ''); ?><?php imdbi('Director'); ?></li><br>
<li><?php _e('Writer(s) : ', ''); ?><?php imdbi('Writer'); ?></li><br>
<li style="line-height: 16px;"><?php _e('Stars : ', ''); ?><?php imdbi('Actors'); ?></li><br>
<li><?php _e('Runtime : ', ''); ?><?php imdbi('Runtime'); ?></li><br>
<li><?php _e('Country : ', ''); ?><?php imdbi('Country'); ?></li><br>
<li><?php if(get_field('encoder') ) { ?><?php _e('Encoder : ', ''); ?><?php echo get_field('Encoder');?><br><?php } ?></li>
<li style="line-height: 16px;"><?php _e('Awards : ', ''); ?><?php imdbi('Awards'); ?></li><br>
<li><?php if(get_field('plot') ) { ?><?php _e('Plot : ', ''); ?><?php echo get_field('plot');?><br><?php } ?></li>
<li><?php echo get_field('add_info');?></li><br>
</ul>
<div class="clear"></div>
</div>
<div class="dl-box">
<?php if( get_field('torrent_dl')):?>
<div class="trnt-head"><h3><?php _e('Torrent Download', ''); ?></h3><div class="torrent"><?php echo get_field('torrent_dl');?></div></div>
<div class="dl-head"><h3><?php _e('Download With Mirror link(s)', ''); ?></h3><div class="dl-link"><?php echo get_field('download_link');?></div></div>
<?php endif;?>
</div>
<?php
$tags = wp_get_post_tags($post->ID);
if ($tags) {
$first_tag = $tags[0]->term_id;
$args=array(
'tag__in' => array($first_tag),
'post__not_in' => array($post->ID),
'showposts'=>5,
'caller_get_posts'=>1
);

$rel_posts = new WP_Query($args);
if( $rel_posts->have_posts() ) {
while ($rel_posts->have_posts()) : $rel_posts->the_post(); ?>

<div class="rel_posts">
<div class="rel_thumb"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<?php
if ( has_post_thumbnail() ){
$src = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full' );
$thumbnailsrc= $src[0];
$params = array( 'width' => 119 ,'height' => 160, 'crop' => true );
?>
<img src="<?php echo bfi_thumb( $thumbnailsrc , $params ) ?>" alt="<?php the_title(); ?>" title="<?php the_title(); ?>" width="119" height="160" />
<?php } else { ?>
<img src="<?php bloginfo('template_directory'); ?>/images/df-tumbnail.png" alt="<?php the_title(); ?>" title="<?php the_title(); ?>" width="119" height="160" />
<?php }?></a><span class="rel_link"><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></span></div>
</div>
<?php
endwhile;
}
}
?></div>

<div class="clear"></div>

<div class="comments-template">
<?php comments_template(); ?>
</div>

</div>


<div class="clear"></div>

لینک به ارسال

این پیوند رو بررسی کنید

خیلی ممنون از راهنمایی های شما، منتها یک راه اسونتر پیدا کردم که میشه چند فایل single.php ساخت که بر اساس دسته بندی لود بشن ، البته اینطور نیست که اموزشای شما مفید نباشن و خیلی ممنونم بابت وقت و اموزش ها .

اموزشش رو میزارم برای کسانی که همچین نیازی دارن :

ابتدا این چند فایل single.php ایجاد میکنیم و ای دی اونهارو بعد از single قرار میدیم :

single-1.php

single-2.php.

.

.

.

single-10.php

بعد این کد رو در فایل single.php قرار میدیم ، :


<?php post;
if ( in_category('1') ) {
include(TEMPLATEPATH . '/single-1.php'); }
elseif ( in_category('3') ) {
include(TEMPLATEPATH . '/single-3.php'); }
elseif ( in_category('6') ) {
include(TEMPLATEPATH . '/single-6.php'); }
elseif ( in_category('456') ) {
include(TEMPLATEPATH . '/single-456.php'); }
else { include(TEMPLATEPATH . '/single-default.php'); } ?>

دسته بندی هایی که فایل single براشون تعریف نشده، از فایل single-default.php استفاده میکنن

لینک به ارسال

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

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

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

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

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

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

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

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

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