wordpress结合页面和帖子

时间:2015-05-21 10:29:16

标签: php wordpress

我正在创建一个基于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(); ?>>...

我想知道如何改变循环,以便只拉入已选择的帖子。目前这个模板/循环只是拉入页面 - 我认为这是公平的。

是否有可能在第一个之后创建“另一个循环”然后引入所选帖子 - 如果是这样的话?

非常感谢

1 个答案:

答案 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,",");

如果没有对主题等更深入的了解,这是我能给出的最佳建议。