在wordpress中添加无限自定义字段

时间:2015-02-22 13:55:18

标签: php wordpress

正如标题所解释的那样,我正在尝试为两件事添加无限的自定义字段:

1.Name
2.Bio

现在我尝试添加1000个自定义字段,并在更新时显示我只是 471 ,它没有超出的方式,我在我的本地环境以及在线但同样的结果上尝试了这个

// Adding the metaboxes
add_action( 'add_meta_boxes', 'add_employee_meta' );

    /* Saving the data */
    add_action( 'save_post', 'employee_meta_save' );

    /* Adding the main meta box container to the post editor screen */
    function add_employee_meta() {
        add_meta_box(
            'employee-details',
           'Employee Details',
            'employee_details_init',
            'post');
    }

    /*Printing the box content */
    function employee_details_init() {
        global $post;
        // Use nonce for verification
        wp_nonce_field( plugin_basename( __FILE__ ), 'employee_nonce' );
        ?>
        <div id="employee_meta_item">
        <?php

        //Obtaining the linked employeedetails meta values
        $employeeDetails = get_post_meta($post->ID,'employeeDetails',true);
        $c = 0;
        if ( count( $employeeDetails ) > 0 && is_array($employeeDetails)) {
            foreach( $employeeDetails as $employeeDetail ) {
                if ( isset( $employeeDetail['name'] ) || isset( $employeeDetail['bio'] ) ) {
                    printf( '<p>Name<input type="text" name="employeeDetails[%1$s][name]" value="%2$s" />  Package : <textarea name="employeeDetails[%1$s][bio]"  rows="4" cols="50" >%3$s</textarea><a href="#" class="remove-package">%4$s</a></p>', $c, $employeeDetail['name'], $employeeDetail['bio'], 'Remove' );
                    $c = $c +1;
                }
            }
        }

        ?>
    <span id="output-package"></span>
    <a href="#" class="add_package"><?php _e('Add Employee Details'); ?></a>
    <script>
        var $ =jQuery.noConflict();
        $(document).ready(function() {
            var count = <?php echo $c; ?>;
            $(".add_package").click(function() {
                count = count + 1;

                $('#output-package').append('<p> Name <input type="text" name="employeeDetails['+count+'][name]" value="" />  bio : <textarea name="employeeDetails['+count+'][bio]" rows="4" cols="50" ></textarea><a href="#" class="remove-package"><?php echo "Remove"; ?></a></p>' );
                return false;
            });
           $(document.body).on('click','.remove-package',function() {
                $(this).parent().remove();
            });
        });
        </script>
    </div><?php

    }

    /* Save function for the entered data */
    function employee_meta_save( $post_id ) {
        if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
            return;
        // Verifying the nonce
        if ( !isset( $_POST['employee_nonce'] ) )
            return;

        if ( !wp_verify_nonce( $_POST['employee_nonce'], plugin_basename( __FILE__ ) ) )
            return;
        // Updating the employeeDetails meta data
        $employeeDetails = $_POST['employeeDetails'];

        update_post_meta($post_id,'employeeDetails',$employeeDetails);
    }

有没有人试过添加很多自定义字段,那么我现在面临的限制是什么?

我有没有办法实际使用任意数量的自定义字段而没有我现在拥有的这种限制?

1 个答案:

答案 0 :(得分:0)

您可以在没有插件的情况下对其进行硬编码,方法是将其添加到您的函数中。

add_filter( 'postmeta_form_limit' , 'customfield_limit_increase' );
function customfield_limit_increase( $limit ) {
    $limit = 1000;
    return $limit;
}

我认为你可能最终会遇到性能问题。

即使使用上面提到的ACF插件,你也可能遇到php限制。 (在PHP 5.3.9中)如果是这种情况,您可以将其添加到.htaccess文件中......

php_value max_input_vars 3000