希望有人能帮助一个新手,因为我不知道该怎么做。
我的函数中有以下代码。填充GravityForms表单产品“复选框列表”的php。用户使用复选框在网站上选择GF表单中的产品。每个拉入复选框列表的产品都是一个单独的WordPress帖子。
我很难按字母顺序对复选框进行排序,以便用户可以在100多个不同的产品(帖子)中轻松找到产品。
我找不到任何其他看起来有点相似的论坛帖子,所以我可以自己解决如何排序。
第一部分是按字母顺序对复选框进行排序,
我需要的第二部分是排除两个标记为“系统”的帖子,或者排除这两个帖子,因为它们被归类为“系统”帖子。
非常感谢,
安德烈
/**
* Add Gravity Forms function to dynamically populate customer
* letter checkboxes
* applicious
*/
//NOTE: update the \'1\' to the ID of your form
add_filter( \'gform_pre_render_1\', \'populate_checkbox\' );
add_filter( \'gform_pre_validation_1\', \'populate_checkbox\' );
add_filter( \'gform_pre_submission_filter_1\', \'populate_checkbox\' );
add_filter( \'gform_admin_pre_render_1\', \'populate_checkbox\' );
function populate_checkbox( $form ) {
foreach( $form[\'fields\'] as &$field ) {
//NOTE: replace 3 with your checkbox field id
$field_id = 3;
if ( $field->id != $field_id ) {
continue;
}
// you can add additional parameters here to alter the posts that are retrieved
// more info: http://codex.wordpress.org/Template_Tags/get_posts
$posts = get_posts( \'numberposts=-1&post_status=publish\' );
$input_id = 1;
foreach( $posts as $post ) {
//skipping index that are multiples of 10 (multiples of 10 create problems as the input IDs)
if ( $input_id % 10 == 0 ) {
$input_id++;
}
$choices[] = array( \'text\' => $post->post_title, \'value\' => $post->ID );
$inputs[] = array( \'label\' => $post->post_title, \'id\' => "{$field_id}.{$input_id}" );
$input_id++;
}
$field->choices = $choices;
$field->inputs = $inputs;
}
return $form;
}