• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
Genesis Custom Blocks

Genesis Custom Blocks

Create effective content faster.

  • Need Help?
You are here: Home / Fields / File

File

The File field creates a field where you can upload documents (non-image files). You can upload a new file or select an existing one from the media library.

Screenshot of File field settings

Click image to enlarge

  1. Field Label: The field label will be displayed next to the field when adding the block to the post or page.
  2. Field Name (slug): The field name should auto-fill based on the field label, but can be customized. This will be used in the PHP as part of the block template.
  3. Field Type: Choose the File field type.
  4. Field Location: Choose a location to display the field.
    • Editor will show the field in the main editing area of a post or page.
    • Inspector will display the field in the right-hand sidebar under the block inspector.
  5. Field Width: Select how widely the field should be displayed.
  6. Help Text: Enter instructions to describe the data needed in the field. (optional).

Supported File Types

The following file types can be uploaded via the File field:

  • .pdf (Portable Document Format; Adobe Acrobat)
  • .doc, .docx (Microsoft Word Document)
  • .ppt, .pptx, .pps, .ppsx (Microsoft PowerPoint Presentation)
  • .odt (OpenDocument Text Document)
  • .xls, .xlsx (Microsoft Excel Document)
  • .psd (Adobe Photoshop Document)

Note: Some web hosts limit the types and size of files that can be uploaded. If you are having issues, please check with your web host.

PHP API Controls

  • Name
  • Label
  • Control
  • Order
  • Location
  • Width
  • help

Template Usage

To display the File field in your template, use the field name you provided.

There are two ways you can do this.

  1. Template Editor: Using the built-in template editor is the easiest way to create the required block template. The template editor accepts HTML markup, field names (enclosed in 2 brackets), and CSS only.

Here’s an example of the HTML we used in the template editor:

<div>
     <ul>
         <li><a href="{{privacy-practices}}">Privacy Practices</a></li>
         <li><a href="{{medical-records-transfer-request}}">Medical Records Transfer Request</a></li>
     </ul>
</div>
  1. PHP Template: If you need to use logic, loop syntax, define variables, or use PHP, you can create the template manually using the PHP templating method instead.

For example:

<a href="<?php block_field( 'privacy-practices' ); ?>" download>
     <?php esc_html_e( 'Download', 'your-textdomain' ); ?>
</a>

Calling block_value() will return the Attachment Post ID of the chosen field as an integer, and calling block_field() will echo the URL of the chosen field as a string.

<?php
$attachment_id = block_value( 'privacy-practices' );
echo wp_get_attachment_url( $attachment_id );
?>

Example template file: /blocks/block-example.php

<?php
// Example File Field
?>

<ul>
<li><a href="<?php block_field( 'privacy-practices' ); ?>" download>
     <?php esc_html_e( 'Download', 'your-textdomain' ); ?>
</a></li>

<li><a href="<?php block_field( 'medical-records-transfer-request' ); ?>" download>
     <?php esc_html_e( 'Download', 'your-textdomain' ); ?>
</a></li>
</ul>

Block Usage

To use the block with the File field on your site, locate it in the blocks menu.

Screenshot of custom block in the blocks menu

Click image to enlarge

It will then display within your post or page editor where you can upload your files.

Screenshot of File field before uploading files

Click image to enlarge

After uploading the files, you’ll see the file names in the post or page editor.

Screenshot of File field after uploading files

Click image to enlarge

And after publishing the post or page, the links to the files you uploaded will appear on the front end of your site.

Screenshot of File field on the front end

Click image to enlarge

Primary Sidebar

Get Started

  • Install Genesis Custom Blocks (free)
  • Install Genesis Custom Blocks Pro
  • Update Genesis Custom Blocks Pro
  • General Settings and Options

Create Custom Blocks

  • Create Your First Custom Block
  • Example Custom Block
  • Add a Custom Block to Your Website Content
  • Style Your Custom Blocks

Export and Import Custom Blocks

  • Export Custom Blocks to Include in Your Theme

Code References

  • Fields
  • Functions
  • Filters

Tutorials & FAQs

  • Tutorials
  • FAQs

Resources

  • Changelog
  • Block Lab Hook Compatibility
  • Block Lab PHP API Compatibility
  • Support

© 2013–2025 WPEngine, Inc. All rights reserved. WP ENGINE®, VELOCITIZE®, TORQUE®, EVERCACHE®, and the cog logo service marks are owned by WPEngine,Inc.
1WP Engine is a proud member and supporter of the community of WordPress® users. The WordPress® trademarks are the intellectual property of the WordPress Foundation, and the Woo® and WooCommerce® trademarks are the intellectual property of WooCommerce, Inc. Uses of the WordPress®, Woo®, and WooCommerce® names in this website are for identification purposes only and do not imply an endorsement by WordPress Foundation or WooCommerce, Inc. WP Engine is not endorsed or owned by, or affiliated with, the WordPress Foundation or WooCommerce, Inc.