我有这段代码:
<?php
$catPost = get_posts(get_cat_ID("music")); //change this
foreach ($catPost as $post) : setup_postdata($post); ?>
<div>
<li id="product_thumbnails">
<h2><?php the_title(); ?></h2>
<p><?php
$thumbnail_id=get_the_post_thumbnail($post->ID);
preg_match ('/src="(.*)" class/',$thumbnail_id,$link);
?>
从&#34; MUSIC&#34;中提取所有帖子类别到特定页面。 我有大约15页,我想让他们每个人拉出不同的类别,如&#34;电影,体育等&#34;。 我是否必须创建15个模板,并在每个模板中更改此行:
$catPost = get_posts(get_cat_ID("music")); //change this
例如:
$catPost = get_posts(get_cat_ID("movies")); //change this
或者有一种更清洁的方法,它是否可能? 我正在使用主题二十二。
谢谢!
答案 0 :(得分:0)
您可以将要查看的类别加载到数组中。 您可以从PHP Get或switch等中检索这些内容吗?
$poststoretrieve = array ('category' => '1,2,3,4,5,6'));
$postsloop = get_posts($poststoretrieve;
foreach ($postsloop as $onepost){
//loop stuff here
}
答案 1 :(得分:0)
你能做的就是创建你的十五个页面,使用下面的代码制作一个模板,然后只需添加一个custom field
,可能是this_page_cat
(你可以任意命名)到所有十五页。所以对于你的十五页,你会有:
page 1: this_page_cat = music
page 2: this_page_cat = books
page 3: this_page_cat = movies
...
然后只需将模板中的代码更改为
即可<?php
$custom_fields = get_post_custom(); //gets custom fields for this page
$my_custom_field = $custom_fields['this_page_cat']; //get fields named 'this_page_cat'
$catPost = get_posts('category=' . get_cat_ID($my_custom_field[0])); //get_post_custom() returns multidimensional array so you need to access the index you want
foreach ($catPost as $post) : setup_postdata($post); ?>
<div>
<li id="product_thumbnails">
<h2><?php the_title(); ?></h2>
<p><?php
$thumbnail_id=get_the_post_thumbnail($post->ID);
preg_match ('/src="(.*)" class/',$thumbnail_id,$link);
endforeach;
?>
将该模板应用于所有十五页,你应该是好的。自定义字段是WP的最佳部分之一,它们上面是more info。另一个答案可能会奏效,但这是一个更具可扩展性的解决方案。