我正在创建一个基于2013的wp模板。我想显示一个“页面”,其中包含一些页面内容,然后是6个帖子。已使用设置API通过主题选项面板选择了这些帖子。所以我可以使用每个人
$options = get_option( 'osc_theme_options' );
我到目前为止使用的模板基于一个页面,所以我猜我需要在某种程度上改变循环。
循环:
<?php /* The loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>...
我想知道如何改变循环,以便只拉入已选择的帖子。目前这个模板/循环只是拉入页面 - 我认为这是公平的。
是否有可能在第一个之后创建“另一个循环”然后引入所选帖子 - 如果是这样的话?
非常感谢
答案 0 :(得分:1)
是的,您可以在现有循环下有效创建另一个循环来显示帖子。我不确定$options = get_option( 'osc_theme_options' );
返回什么,即一组帖子ID等。为了显示你需要做一个自定义循环的帖子:
// The Query
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() )
{
echo '<ul>';
while ( $the_query->have_posts() )
{
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
}
else
{
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();
取自:
https://css-tricks.com/snippets/wordpress/custom-loop-based-on-custom-fields/
另见:
https://digwp.com/2011/05/loops/
http://www.smashingmagazine.com/2013/01/14/using-wp_query-wordpress/
如此有效地归结为$args
变量,您将获得哪些帖子。以下是多个ids
id=2,6,17,38
因此,如果$options = get_option( 'osc_theme_options' );
返回一个post id数组,如下所示:
array(
0=>1
1=>22
2=>27
)
您可以执行以下操作:
$args = "id=".implode($options,",");
如果没有对主题等更深入的了解,这是我能给出的最佳建议。