0

Post List というページ テンプレートにフォーム送信時に配列として投稿するチェックボックス付きの分類用語のリストがあります。ここでの私の目標は、チェックボックスを使用して分類用語をリストし、フォームの送信時に、チェックされた用語が割り当てられた対応する投稿を表示することです。

<?php
$terms = get_terms("the_taxonomy");
$count = count($terms);
if ( $count > 0 ){?>
?>

<form action="<?php echo esc_url( get_permalink( get_page_by_title( 'Post List' ) ) ); ?>" method="post">

 <?php foreach ( $terms as $term ) {?>

 <input type="checkbox" name="terms[]" value="<?php echo $term->name ?>" /><?php echo $term->       
 name ?> <br />

 <?php }?>

 <input type="submit" value="Submit" />
</form>

投稿リスト ページ (post-list.php) 内の配列を印刷すると、返された用語が取得されるので、動作することを確認できます。

<?php
/*
Template Name: Post List 
*/
?>

<?php print_r($_POST['terms']);?>

<!---OUTPUT--->
Array ( [0] => term1 [1] => term2 [2] => term3 [3] => term4 )

返された用語配列をカスタム投稿タイプの保存された用語と比較し、選択および送信された用語に基づいて投稿を返すにはどうすればよいですか? ご協力いただきありがとうございます。

4

1 に答える 1

1

彼が書いたこのリンクhttp://wordpress.org/support/topic/exclude-posts-containing-a-particular-tagからstiwdioの質問の行を読んでください

$term = get_term_by('slug','helen', 'post_tag');

そのため、投稿リスト テンプレートで取得しているこのようなコンマ区切りの用語を渡す必要があります。implode 関数を使用して、このようなカンマ区切りのリストを取得できます

$var = "'".implode("','",$_POST['terms'])."'";
echo $var; //OUTPUT - 'term1','term2','term3','term4' 
于 2012-08-20T10:21:31.260 に答える