按字母顺序对填充的GravityForms列表进行排序

时间:2019-04-02 作者:app.licious Group Pty Ltd

希望有人能帮助一个新手,因为我不知道该怎么做。

我的函数中有以下代码。填充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;
}

1 个回复
SO网友:phatskat

我想你应该看看这句话,除非我弄错了:

$posts = get_posts( \'numberposts=-1&post_status=publish\' );
您应该能够添加orderbyorder 参数:

$posts = get_posts( \'numberposts=-1&post_status=publish&order=asc&orderby=title\' );

相关推荐

exclude roles from overview

我在一个新网站上重新使用了一些旧代码,在那里我以最后一张帖子图片为背景显示列表中的所有用户。这一切都很好(我知道get\\u users\\u of\\u blog不受欢迎,但当我使用get\\u users时,我的代码会中断)。。。<?php $blogusers = get_users_of_blog(); if ($blogusers) { foreach ($blogusers as $bloguser) { $args = array( &#