我使用以下方法从自定义帖子类型和自定义分类中检索帖子:
<?php // Create and run custom loop
$custom_posts = new WP_Query();
$custom_posts->query(\'post_type=blocks&location=Front Page§ion=Mainbar\');
while ($custom_posts->have_posts()) : $custom_posts->the_post();
?>
<div class="block-2 border-top">
<h2><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( \'Permalink to %s\', \'twentyten\' ), the_title_attribute( \'echo=0\' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
<?php endwhile; ?>
在页面中,我想创建一些字段,让用户自定义循环参数,如下所示:
$custom_posts->query(\'post_type=blocks&location=<Enter Location>§ion=<Enter Section>\');
最简单的方法是什么?
代码是什么样子的?
最合适的回答,由SO网友:Bainternet 整理而成
最简单的方法是创建一个简单的表单:
<?php $nonce= wp_create_nonce (\'my-nonce\'); ?>
<form name="user-query" method="post">
<input type="hidden" name="_wpnonce" id="_wpnonce" value="<?php echo $nonce; ?>"/>
<p>Locations:
<select name="location" id"location">
<option value="location1">location1</option>
<option value="location2">location2</option>
<option value="location3">location3</option>
<option value="location4">location4</option>
</select></p>
<p>Sections:
<select name="section" id"location">
<option value="section1">section1</option>
<option value="section2">section2</option>
<option value="section3">section3</option>
<option value="section4">section4</option>
</select></p>
<input type="submit" name="create-query" value="create query"/>
</form>
并捕捉这些信息以供提交和处理
if (isset($_POST[\'create-query\'])){
$nonce=$_POST[\'_wpnonce\'];
if (! wp_verify_nonce($nonce, \'my-nonce\') ) die(\'Security check\');
if (isset($_POST[\'location\']) && isset($_POST[\'section\']) ){
$args = array(
\'post_type\' => \'blocks\',
\'location\' => $_POST[\'location\'],
\'section\' => $_POST[\'section\']
);
$custom_posts->query($args);
}
}
我会添加一些安全检查,但这应该可以让你继续。