Tamam, bunu açıklayabilirim bakayım. Ben bir gazete WordPress tema yapıyorum. Tema kategorilerden mesaj çeker. Ön sayfa "newsboxes" olarak düzenlenen birden fazla kategori gösterir. Her yazılan söyledi sonrası iki veya daha fazla kategoride olsa bile, ön sayfaya sadece KEZ göstermek gerekir.
Ön sayfada çoğaltmanın mesajlarını önlemek için, ben bireysel sonrası kimlikleri tutan bir dizi oluşturduk. Bir post İLK ön sayfada gösterir, onun kimliği, diziye eklenen alır. Her kategori için mesaj yoluyla dönmeden önce, kod ilk mesaj ZATEN gösterilmiştir hangi görmek için dizi denetler.
Tamam, şimdi ben daha önce ön sayfa "newsboxes" olarak düzenlenen birden fazla kategori gösterdiğini söyledi nasıl hatırlıyor? Peki, bu newsboxes PHP kullanarak içerir ön sayfaya denir. Ben ön sayfada görünen 6 newsboxes var ve onları aramak için kod TAM aynıdır. Ben aynı kodu 6 kez tekrarlamak istemiyordu, bu yüzden bir işlev içine dahil tüm kodu koydu.
Işlevi çalışır, fakat tek sorun bu kadar vida daha önce bahsettiğim yinelenen mesaj kodunu söyledi. Mesajları Bütün tekrarlama. $ Do_not_duplicate değişken üzerinde bir var_dump Koşu boş endeksleri ile bir dizi döndürür. Ben bir işlev içinde kod koymak yoksa her şey mükemmel çalışıyor, ama ben bir işlevi onları koymak kez diziler bile mesajlar ile bağlantı değil gibiydi.
İşte dizilerle kodudur. Burada söz konusu anahtar değişkenler $ [] = $ post-> ID, $ do_not_duplicate ve 'post__not_in' => $ do_not_duplicate do_not_duplicate dahil
<?php query_posts('cat='.$settings['cpress_top_story_category'].'&posts_per_page='.$settings['cpress_number_of_top_stories'].'');?>
<?php if (have_posts()) : ?>
<!--TOP STORY-->
<div id="topStory">
<?php while ( have_posts() ) : the_post(); $do_not_duplicate[] = $post->ID; ?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_post_thumbnail('top-story-thumbnail'); ?></a>
<h2 class="extraLargeHeadline"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
<div class="topStory_author"><?php cpress_show_post_author_byline(); ?></div>
<div <?php post_class('topStory_entry') ?> id="post-<?php the_ID(); ?>">
<?php if($settings['cpress_excerpt_or_content_top_story_newsbox'] == "content") {
the_content(); ?><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><span class="read_more"><?php echo $settings['cpress_more_text']; ?></span></a>
<?php } else {
the_excerpt(); ?><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><span class="read_more"><?php echo $settings['cpress_more_text']; ?></span></a>
<?php }?>
</div><!--/topStoryentry-->
<div class="topStory_meta"><?php cpress_show_post_meta(); ?></div>
<?php endwhile; wp_reset_query(); ?>
<?php if(!$settings['cpress_hide_top_story_more_stories']) { ?>
<!--More Top Stories--><div id="moreTopStories">
<?php $category_link = get_category_link(''.$settings['cpress_top_story_category'].''); ?>
<?php if (have_posts()) : ?>
<?php query_posts( array( 'cat' => ''.$settings['cpress_top_story_category'].'', 'posts_per_page' => ''.$settings['cpress_number_of_more_top_stories'].'', 'post__not_in' => $do_not_duplicate ) ); ?>
<h4 class="moreStories">
<?php if($settings['cpress_make_top_story_more_stories_link']) { ?>
<a href="<?php echo $category_link; ?>" title="<?php echo strip_tags($settings['cpress_top_story_more_stories_text']);?>"><?php echo strip_tags($settings['cpress_top_story_more_stories_text']);?></a><?php } else {
echo strip_tags($settings['cpress_top_story_more_stories_text']); } ?>
</h4>
<ul>
<?php while( have_posts() ) : the_post(); $do_not_duplicate[] = $post->ID; ?>
<li><h2 class="mediumHeadline"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
<?php if(!$settings['cpress_hide_more_top_stories_excerpt']) { ?> <div <?php post_class('moreTopStory_postExcerpt') ?> id="post-<?php the_ID(); ?>"><?php if($settings['cpress_excerpt_or_content_top_story_newsbox'] == "content") {
the_content(); ?><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><span class="read_more"><?php echo $settings['cpress_more_text']; ?></span></a>
<?php } else {
the_excerpt(); ?>
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><span class="read_more"><?php echo $settings['cpress_more_text']; ?></span></a>
<?php }?> </div><?php } ?>
<div class="moreTopStory_postMeta"><?php cpress_show_post_meta(); ?></div>
</li>
<?php endwhile; wp_reset_query(); ?>
</ul>
<?php endif;?>
</div><!--/moreTopStories-->
<?php } ?>
<?php echo(var_dump($do_not_duplicate)); ?>
</div><!--/TOP STORY-->
<?php endif; ?>
Ve burada ön sayfaya newsboxes içeren kodudur. Bu ben bunu tek bir sayfada 6 kez çoğaltma önlemek için bir işlev içine koymak için çalışıyorum kodudur.
function cpress_show_templatebitsf($tbit_num, $tbit_option) {
global $tbit_path;
global $shortname; $settings = get_option($shortname.'_options');
//display the templatebits (usually these will be sidebars)
for ($i=1; $i<=$tbit_num; $i++) {
$tbit = strip_tags($settings[$tbit_option .$i]);
if($tbit !="") {
include_once(TEMPLATEPATH . $tbit_path. $tbit.'.php');
} //if
}//for loop
unset($tbit_option);
}
Bu mantıklı umuyoruz. Bu açıklamak için karmaşık bir şey naziksiniz ama bunu düzeltmek için çok şey denedim ve hiçbir şans oldu. Stumped. Ben böyle bir sorun olmamalı gibi görünüyor çünkü ben bakan değilim, sadece bazı küçük şey umuyorum.