Title: Library Viewer
Author: Pexle Chris
Published: <strong>ሐምሌ 8, 2019</strong>
Last modified: ግንቦት  29, 2026

---

Search plugins

![](https://ps.w.org/library-viewer/assets/banner-772x250.jpg?rev=2120573)

![](https://ps.w.org/library-viewer/assets/icon-256x256.png?rev=2120573)

# Library Viewer

 By [Pexle Chris](https://profiles.wordpress.org/pexlechris/)

[Download](https://downloads.wordpress.org/plugin/library-viewer.3.3.0.zip)

 * [Details](https://am.wordpress.org/plugins/library-viewer/#description)
 * [Reviews](https://am.wordpress.org/plugins/library-viewer/#reviews)
 *  [Installation](https://am.wordpress.org/plugins/library-viewer/#installation)
 * [Development](https://am.wordpress.org/plugins/library-viewer/#developers)

 [ድጋፍ](https://wordpress.org/support/plugin/library-viewer/)

## ማብራሪያ

**New in Version 3.3.0: Admin Library Viewer!**
 You can now manage and browse your
library directly from your WordPress dashboard. Go to **Media > Library Viewer**
to get started.

Library Viewer allows you to display files and folders from your server directly
on your WordPress site.

By default, the free version displays the contents of the **“library”** folder located
in your site’s root directory (example: `yoursite.com/library`). To display any 
other directory, you can use the `path` parameter available in **[Library Viewer Pro](https://www.pexlechris.dev/library-viewer/pro-wp)**.

Whether you want to create a public document library, a members-only download area,
or an internal file portal, Library Viewer provides a lightweight and flexible solution.

Unlike traditional file manager plugins, Library Viewer focuses on controlled visibility
and flexible file access.

You can:

 * Allow users to browse files without allowing them to open or download them
 * Restrict file access based on login status or user roles
 * Open files using custom viewers or external services
 * Integrate file access with WooCommerce purchases
 * Manage your library directly from the WordPress dashboard

### Live Demo

Explore a working example of Library Viewer:
 [View Demo](https://www.pexlechris.dev/library-viewer/demo-wp)

### Ideal Use Cases

 * Document libraries
 * Members-only downloads
 * WooCommerce customer downloads
 * Internal company file portals
 * Educational resources
 * Front-end file management systems

### Key Features

 * **Access Control:** Allow users to browse files but restrict opening them to 
   logged-in users or specific roles.
 * **Custom Viewer:** Open files in a custom viewer or redirect them via a web service
   of your choice.
 * **Breadcrumb Navigation:** Easy navigation through subfolders.
 * **Search & Filter:** Show or hide specific files and folders (Pro version).

### Quick Start

 1. Create a folder named “library” in your server root (e.g. public_html/library)
 2. Upload your files and folders inside it
 3. Add the shortcode [library-viewer] to any page or post
 4. Publish the page and view your library
 5. (Optional) Use shortcode parameters to control access and behavior
 6. To view your library in the backend, navigate to **Media > Library Viewer**.

### Library Viewer Admin Pages

[ADMIN PAGE DOCUMENTATION](https://www.pexlechris.dev/library-viewer/docs/admin_page/)

The Library Viewer Admin Pages feature, introduced in version 3.3.0, brings library
functionality directly into your WordPress dashboard.
 It is designed for site owners
and administrators who need quick access to their libraries without visiting the
front end. Unlike a single fixed admin screen, Library Viewer allows you to register**
multiple Library Viewer Admin Pages**, each with its own configuration, permissions,
and displayed library.

For advanced usage and full configuration options, please refer to the Admin Page
Documentation.

**Key Features of the Admin Page:**

 * **Centralized Browsing:** View all files and folders in your “library” folder(
   or in other directories when using Library Viewer Pro) directly from the **Media
   > Library Viewer** menu.
 * **Customizable Access:** You can define exactly which user roles or capabilities(
   e.g., editors, custom roles) have permission to view this admin page.
 * **Flexible Display:** The admin page uses the same powerful engine as the shortcode.
   In the “Library to display” field, **you can set any [library-viewer] shortcode**
   with the parameters of your choice (as described in the Parameters Documentation)
   to customize the backend display.
 * **Easy Navigation:** Includes a dedicated “Settings” tab where you can change
   the page title and manage access permissions without touching any code.

**How to Use:**

 1. Go to your WordPress Dashboard.
 2. Navigate to **Media > Library Viewer**.
 3. Use the **Library** tab to browse your files.
 4. Switch to the **Settings** tab to customize the title or restrict access to specific
    roles.

### Parameters Documentation

  [FULL PARAMETERS DOCUMENTATION AND USE CASES](https://www.pexlechris.dev/library-viewer/parameters-wp)

  **PARAMETERS OF LIBRARY VIEWER**

 * **have_file_access** (have_file_access parameter controls which users can access
   and view files.)
 * **my_doc_viewer** (my_doc_viewer parameter defines which viewer is used to open
   files.)
 * **login_page** (login_page parameter sets the login page where users are redirected
   if authentication is required)

  **PARAMETERS OF [LIBRARY VIEWER FOR WOOCOMMERCE](https://www.pexlechris.dev/library-viewer/for-woocommerce/)**

 * **have_file_access=”customer_with_folder_access”** (The `customer_with_folder_access`
   value for the `have_file_access` parameter grants access to users who purchased
   a product with folder access.)
 * **sold_on** (sold_on parameter specifies the WooCommerce product required to 
   unlock folder access.)

  **PARAMETERS OF [LIBRARY VIEWER PRO](https://www.pexlechris.dev/library-viewer/pro-wp)**

 * **path** (path parameter defines which server folder is displayed in the front-
   end library. When we refer to a “folder,” we mean the folder’s contents, including
   any subfolders and files within it.)
 * **guest_view_access** (guest_view_access parameter controls whether guest users
   can view folder contents. By default, all users can see folder contents, but 
   they cannot open files.)
 * **waiting_seconds** (waiting_seconds parameter Sets delay before redirecting 
   users to login (0 = immediate redirect))
 * **breadcrumb** (breadcrumb parameter enables or disables breadcrumb navigation)
 * **hidden_folders** (hidden_folders parameter hides specific folders from the 
   library view)
 * **shown_folders** (shown_folders parameter explicitly defines which folders are
   visible.)
 * **hidden_files** (hidden_files parameter hides specific files from the library
   view.)
 * **shown_files** (shown_files parameter explicitly defines which files are visible.)
 * **url_suffix** (url_suffix parameter adds a URL suffix to allow multiple library
   instances on the same page.)

  **PARAMETERS OF [LIBRARY VIEWER FILE MANAGER ADD-ON](https://www.pexlechris.dev/library-viewer/fm-wp)**

 * **delete_folder** (delete_folder parameter controls permission to delete folders.)
 * **delete_file** (delete_file parameter controls permission to delete files.)
 * **rename_folder** (rename_folder parameter controls permission to rename a folder.)
 * **rename_file** (rename_folder parameter controls permission to rename a file.)
 * **create_folder** (create_folder parameter controls permission to create a folder.)
 * **upload_file** (upload_file parameter controls permission to upload a file.)
 * **unzip_file** (unzip_file parameter controls permission to unzip a zip file.)
 * **download_folder** (download_folder parameter allows downloading folders as 
   ZIP files.)
 * **download_file** (download_file parameter allows downloading individual files.)

 
 [FULL PARAMETERS DOCUMENTATION AND USE CASES](https://www.pexlechris.dev/library-viewer/parameters-wp)

 

### Hooks Documentation

From 2.0.0 version and then, there are many hooks that you can customize the functionality
of this plugin.
 You can read more in [HOOKS DOCUMENTATION](https://www.pexlechris.dev/library-viewer/hooks-wp)
Read also in my blog: [How to add PHP hooks in your WordPress Site](https://www.pexlechris.dev/how-to-add-php-hooks-in-your-wordpress-site)

### Premium Extensions Features

 * With **[LIBRARY VIEWER PRO](https://www.pexlechris.dev/library-viewer/pro-wp)**
   you can:
    - Display **any folder on your server**, not just the default “library” folder.
    - Customize URLs with hooks and parameters.
    - Show or hide the breadcrumb with a simple shortcode parameter.
    - Gain full control over which folders and files are displayed or hidden.
    - Forbid direct access to files, ensuring they are only accessible via the Library
      Viewer.
 * With the **[LIBRARY VIEWER FOR WOOCOMMERCE ADD-ON](https://www.pexlechris.dev/library-viewer/for-woocommerce/)**
   you can:
    - Grant library access to customers who purchase specific products.
    - Create a “Members Only” file area linked to WooCommerce purchases.
 * With the **[LIBRARY VIEWER FILE MANAGER ADD-ON](https://www.pexlechris.dev/library-viewer/fm-wp)**
   you can:
    - Allow users to upload, rename, delete, and manage files directly from the 
      front-end.
    - Use the library as a powerful front-end file manager for your admins or specific
      user roles.

## Screenshots

 * [[
 * library folder must be located in the root of your FTP server
 * [[
 * Not all files and folders are displaying in the front-end Library Viewer because
   of their special names (hidden-folder, hidden-file, .php etc.)
 * [[
 * The string-value of the $text_at_beginning variable is displayed between the 
   breadcrumb and the folders, the string-value of the $text_at_end variable is 
   displayed below the folders & files.
 * [[
 * The settings of the default Library Viewer admin page
 * [[
 * The displayed library according to the settings from the previous screenshot.
 * [[
 * With Library Viewer File Manager Add-On, you can give the ability to some of 
   your users to manage the library from the front-end.

## መጫን

 1. Download the plugin from the [Official WP Plugin Repository](https://wordpress.org/plugins/library-viewer/).
 2. Upload the plugin through your WordPress Dashboard (**Plugins > Add New > Upload
    Plugin**).
 3. Activate the plugin through the **Plugins** menu.
 4. For quick configuration and usage instructions, please refer to the **Quick Start**
    section at the beginning of this document.

## የተለመዱ ጥያቄዎች

### How can I use the new Library Viewer Admin Page?

Starting from version 3.3.0, you can access your library directly from the WordPress
back-end. Simply navigate to **Media > Library Viewer**. You can browse your files
in the “Library” tab and customize the page title or access permissions in the “
Settings” tab. This is perfect for administrators who need quick access without 
leaving the dashboard!
 Read more in [ADMIN PAGE DOCUMENTATION](https://www.pexlechris.dev/library-viewer/docs/admin_page/)

### How can I grant library access only to my WooCommerce customers?

You can use the **[Library Viewer for WooCommerce Add-on](https://www.pexlechris.dev/library-viewer/for-woocommerce/)**.
It allows you to link specific folders to WooCommerce products, granting access 
automatically upon purchase.

### Can users upload or manage folders & files from the front-end?

Yes, by adding the **[Library Viewer File Manager Add-on](https://www.pexlechris.dev/library-viewer/fm-wp)**.
This enables front-end uploading, renaming, and deletion of files and folders based
on user roles.

### Can I display a folder that is outside of my WordPress root directory?

Yes, with **[Library Viewer Pro](https://www.pexlechris.dev/library-viewer/pro-wp)**
you can display any folder on the same server, even if it is outside your WordPress
installation directory (e.g., above the public_html folder), as long as the server’s
PHP has access to it.
 This can be achieved using the `lv_filter_global_abspath`
filter to change the default ABSPATH to the root path of the folder you want to 
display. For more detailed instructions and code examples on how to set this up,
please feel free to ask in the **[support forum](https://wordpress.org/support/plugin/library-viewer/)**.
As you can see, I usually respond within a few hours to help you out!

### Can I hide specific folders or files from the library?

Yes. By default, the plugin hides:
 * Folders containing the string “hidden-folder”
in their name. * Files containing the string “hidden-file” in their name. * All `.
php` and `.ini` files. Rename your files or folders accordingly to hide them. For
more advanced control (including specific inclusion/exclusion lists), you can use**
[Library Viewer Pro](https://www.pexlechris.dev/library-viewer/pro-wp)**.

### Can I forbid the direct access to the files in my library?

Yes, with **[Library Viewer Pro](https://www.pexlechris.dev/library-viewer/pro-wp)**
you can protect your files so they are only accessible through the plugin’s viewer,
preventing direct URL access.
 See this support topic: [wordpress.org/support/topic/executable-pdf-file](https://wordpress.org/support/topic/executable-pdf-file/)

### How can I deny users from executing PHP files in my library folders?

To enhance security, you should add the following code to a `.htaccess` file inside
the folder you want to protect:

    ```
      <Files *.php>
      deny from all
      </Files>
    ```

### Are there shortcode examples?

You can test your own use cases in the [DEMO](https://www.pexlechris.dev/library-viewer/demo-wp)

### Which Page Builders are compatible with Library Viewer?

Library Viewer have been tested with TinyMCE (Classic Editor), Gutenberg, WPBakery,
Visual Composer, Elementor and works fine!
 Generally can be used, everywhere that
shortcodes are accepted…

### Library Viewer does not work properly and/or I get some ERRORS. Why?

 * Check your permalinks PLAIN PERMALINKS ARE NOT SUPPORTED. Please change your 
   permalink from /wp-admin/options-permalink.php to something else.
    - Check the folders’ and files’ read permissions (safe choice is to use 644)
    - If you use the plugin **Remove Uppercase Ascents** and a CSS code like _.library-
      viewer–folder{text-transform: uppercase;}_ maybe this cause the problem. The
      solution in this case is to use instead this CSS code: .library-viewer–folder
      h3 a{text-transform: uppercase;}
    - Check if the file or folder has special characters in its name. Some are not
      supported as names of folders and files such as %. In this case, contact me
      via [email](https://am.wordpress.org/plugins/library-viewer/info@pexlechris.dev?output_format=md)
      or via [support forum](https://wordpress.org/support/plugin/library-viewer/)
      to find a solution!
    - For other problems, you can open a support ticket in [support forum](https://wordpress.org/support/plugin/library-viewer/)

### Can I add my custom text inside a folder of front-end library viewer?

Yes. If you want to add text above the front-end folders or below the front-end 
files, you can create via FTP a file with name “include.php” in the FTP folder that
you want texts to be shown in front-end.
 HTML tags are allowed! Your texts must
be values of php variables ($text_at_beginning , $text_at_end respectively) as you
can see below:

    ```
      <?php
      $text_at_beginning = "My text above front-end folders";
      $text_at_end = "My text below front-end files";
      ?>
    ```

 
 Also, you can use the hooks `lv_folder_text_at_beginning` and `lv_folder_text_at_end`
respectively for this scope.

### Is Library Viewer’ file viewer supports all mime types (file extensions)?

From 1.1.2, the Library Viewer’ file viewer supports all mime types that WordPress
supports.
 These that included in the function: wp_get_mime_types() If you want 
to add support for mime types that are not included, use the WP filter: lv_mime_types
to include them. Read more in [HOOKS DOCUMENTATION](https://www.pexlechris.dev/library-viewer/hooks-wp#lv_mime_types)
Read also [how to add PHP hooks in your WordPress Site in my blog](https://www.pexlechris.dev/how-to-add-php-hooks-in-your-wordpress-site)

### I want all files to be downloaded. Is that possible?

Yes, you need to use the Library Viewer’ file viewer (my_doc_viewer=”library-viewer”)
and to add the following hook in your functions.php

    ```
      add_filter('lv_mime_types', function(){
        return array();
      });
    ```

Read [how to add PHP hooks in your WordPress Site in my blog](https://www.pexlechris.dev/how-to-add-php-hooks-in-your-wordpress-site)

### Can I change the colors or the fonts that plugin uses?

Yes. But only with plain CSS at the moment. So you can add your custom css from 
WP customizer (from Additional CSS)

### I have a proposal for a new functionality of this plugin. Can I suggest it to you?

Yes. I need new ideas to improve my plugin. Send it to me via [email](https://am.wordpress.org/plugins/library-viewer/info@pexlechris.dev?output_format=md)
or via [support forum](https://wordpress.org/support/plugin/library-viewer/)

## Reviews

![](https://secure.gravatar.com/avatar/d90678101a93de4de1f30c161066d6bd6729db289eb1cd17b7d73ebfaaadfd70?
s=60&d=retro&r=g)

### 󠀁[Great plugin!](https://wordpress.org/support/topic/great-plugin-39745/)󠁿

 [marxveix](https://profiles.wordpress.org/marxveix/) ህዳር 9, 2024 1 reply

Hello, Simple to use and free ftp downlod plugin for wordpress. I like it a lot!
Missing file sizes for ftp files, but it just works and i love it. URL for the ftp
could be with / not %2F. Thank you! 🙂

![](https://secure.gravatar.com/avatar/d353302b09b3c76aee1ddaaabcaec466a22679b667abffef3d29cbd0c73d94c1?
s=60&d=retro&r=g)

### 󠀁[Great Plugin – Great Support](https://wordpress.org/support/topic/great-plugin-great-support-1869/)󠁿

 [honighut](https://profiles.wordpress.org/honighut/) መጋቢት 22, 2024

We use the pro version of the plugin. It runs very quickly and is easy to install.
We had a small problem with a special request and the support answered us immediately.
We are very satisfied.

![](https://secure.gravatar.com/avatar/20cb6c9962386b8bc744b0148731477f5e3199fb6a5fb5f77969c74df281b3c6?
s=60&d=retro&r=g)

### 󠀁[Very nice plugin](https://wordpress.org/support/topic/very-nice-plugin-1021/)󠁿

 [juliocastellanos](https://profiles.wordpress.org/juliocastellanos/) ግንቦት 25, 2023

This pluggin works perfectly and the author is very committed to support and provides
it quite quickly. I was surprised by the short response to support

![](https://secure.gravatar.com/avatar/02a91cd16d77094317fdc743283afe8a8b8879f1731983273c8ecd3fa90d40f8?
s=60&d=retro&r=g)

### 󠀁[Excellent plugin and service](https://wordpress.org/support/topic/excellent-plugin-and-service-40/)󠁿

 [cguerra7](https://profiles.wordpress.org/cguerra7/) ግንቦት 11, 2023

This plugin was exactly what I was looking for, I just wanted to browse the files
and folders structure of an already existing directory, with this, now our group
of students can have a very easy access to our pdf, mp3, mp4 and more. Also, the
author is very collaborative and keen to help as soon as possible.

![](https://secure.gravatar.com/avatar/5ea235d26fc8b79f752b88a1d1a90ed6456c2e7fc5d461ec65e03c7f6e968e8d?
s=60&d=retro&r=g)

### 󠀁[Great plugin](https://wordpress.org/support/topic/great-plugin-34636/)󠁿

 [maro5](https://profiles.wordpress.org/maro5/) ሐምሌ 20, 2022

Thanks to to developer.

![](https://secure.gravatar.com/avatar/948c33a8d75f06fb17cfb2111671fe8832686ba83ec20c4de6c206802411ad4a?
s=60&d=retro&r=g)

### 󠀁[A life saver](https://wordpress.org/support/topic/a-life-saver-74/)󠁿

 [hbrikas](https://profiles.wordpress.org/hbrikas/) የካቲት 20, 2022

A very handy plug-in that lets you display and use the contents of a directory. 
You can deal with the contents of the directory with the use of ftp. Very easy to
use, very lightweight, excellent. Thank you

 [ Read all 12 reviews ](https://wordpress.org/support/plugin/library-viewer/reviews/)

## Contributors & Developers

“Library Viewer” is open source software. The following people have contributed 
to this plugin.

Contributors

 *   [ Pexle Chris ](https://profiles.wordpress.org/pexlechris/)

[Translate “Library Viewer” into your language.](https://translate.wordpress.org/projects/wp-plugins/library-viewer)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/library-viewer/), check
out the [SVN repository](https://plugins.svn.wordpress.org/library-viewer/), or 
subscribe to the [development log](https://plugins.trac.wordpress.org/log/library-viewer/)
by [RSS](https://plugins.trac.wordpress.org/log/library-viewer/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 3.3.0

 * Tested up to WP: 7.0
 * New Required PHP version: 7.4
 * Tested up to PHP: 8.3
 * [New Feature]: **Admin Library Viewer!** Display and manage your library directly
   from the WordPress backend (Media > Library Viewer).
 * [New]: **Plain permalinks & preview pages are now supported** in the library-
   viewer shortcode!
 * [New]: Autoload behavior can now be controlled via the filter `lv_autoload_shortcodes`.
   It is recommended to autoload this option **only if shortcodes are used on every
   page**.
 * [New]: New filter introduced: `lv_should_load_shortcode` to control whether the
   shortcode should be loaded in the current request.
 * [New]: Added public static method `Library_Viewer_Init::get_file_identifier()`
   to retrieve the LV file identifier.
 * [New]: Added public static method `Library_Viewer_Init::should_load_file_viewer()`
   to determine if the file viewer should be loaded for the current request.
 * [New]: New filter introduced: `lv_should_load_file_viewer` to control whether
   the Library Viewer’s file viewer should be loaded.
 * [Enhancement]: `load_plugin_textdomain` is now hooked to `init` with priority
   1 instead of 10.
 * [Enhancement]: Code refactor of class `Library_Viewer_Init`.
 * [Enhancement]: Option `library-viewer-shortcodes` **is no longer autoloaded by
   default**.
 * [Enhancement]: Renamed class `Library_Viewer_Plugin_Page` to `Library_Viewer_Plugin_Row`
   to better reflect that it handles the plugin row (action links & meta links) 
   in the Plugins page.
 * [Enhancement]: Updated require path to ‘class-library-viewer-plugin-row.php’ 
   and instantiation to `new Library_Viewer_Plugin_Row();`
 * [Enhancement]: Not save in option `library-viewer-shortcodes` rest api URLs (/
   wp-json/)
 * [Enhancement]: Change the priority/order in which globals and parameters are 
   applied. Filters now run immediately after parameter/global initialization.
 * [Bug Fix]: Prevent mobile browsers from appending .html extension by adding fallback
   Content-Type header for downloads.
 * [Deprecated]: Method `Library_Viewer_Init::is_frontend()` method has been deprecated.
   Use `Library_Viewer_Init::should_load_shortcode()` instead, after init with priority
   10.
 * [Deprecated]: `lv_is_frontend` filter has been deprecated. You can use filter`
   lv_should_load_shortcode` to control whether the shortcode should be loaded in
   the current request.
 * [Removed]: `set_file_identifier` callback from the `init` action has been removed.

#### 3.2.0

 * Tested up to WP: 6.9
 * [Security Fix]: XSS fix. Please update now.

#### 3.1.0

 * Tested up to WP: 6.8.1
 * [Bug Fix]: The URL structure has been updated — `dir` GET parameter now displays
   slashes (`/`) instead of their encoded form (`%2F`).

#### 3.0.4

 * [Bug Fix]: Avoid some errors when file classes are loaded without loading at 
   current page

#### 3.0.3

 * [Bug Fix]: Fixed a PHP warning `Undefined array key "abspath"`, which occurred
   when viewing a file.

#### 3.0.2

 * Tested up to WP: 6.7.2
 * [Bug Fix]: Fixed a bug introduced in version 3.0.0 where a hook was loaded on
   the default WP login page, causing a blank page in some cases.
 * [New]: Added a new static method `Library_Viewer_Init::is_frontend()` to determine
   when the above hooks should be loaded.

#### 3.0.1

 * [Bug Fix]: Fixed a bug introduced in version 3.0.0 where a user was not being
   redirected to the file after logging in via a custom login page when using the`
   login_page` shortcode parameter.

#### 3.0.0

 * [New Feature]: If the page contains only one shortcode in its content, the current
   folder name is now prepended to the document title. The `lv_prepend_document_title`
   action handles this.
 * [New Feature]: From now and then, with Library Viewer Pro you can **display any
   folder of your server** you want! Previously, only folders of the WP installation
   could be displayed. For more ask in the support forum!
 * [New]: Introduced global variable `$library_viewer_object`, which stores the 
   shortcode object after shortcode execution or when a file is being viewed.
 * [New]: New class global abspath. Default value is the WP constant ABSPATH, the
   absolute path of WordPress installation.
 * [New]: `lv_prepend_document_title` filter introduced. Used to prepend the current
   folder in document title parts.
 * [New]: `lv_folder_name` filter introduced. With this filter, you can filter the
   name of a folder. See more details in docs.
 * [New]: `lv_breadcrumb_item_html` filter introduced. With this filter, you can
   filter html of each breadcrumb item. See more details in docs.
 * [New]: Library Viewer inner action (not WP action) `enqueue_scripts` introduced,
   in order all addons be able to enqueue shortcode scripts more efficiently.
 * [New]: Library Viewer inner action (not WP action) `enqueue_styles` introduced,
   in order all addons be able to enqueue shortcode styles more efficiently.
 * [New]: Now styles and scripts are enqueued in WP hook wp_enqueue_scripts with
   callback shortcode class method `enqueue_styles_and_scripts`!
 * [New]: New public method `Library_Viewer_Shortcode::get_single_shortcode_attrs()`
 * [New]: New public method `Library_Viewer_Shortcode::get_page_shortcodes_matches()`
 * [New]: New public method `Library_Viewer_Shortcode::get_page_shortcodes_counter()`
 * [New]: New public method `Library_Viewer_Shortcode::get_current_folder()`
 * [New]: New public method `Library_Viewer_Shortcode::get_breadcrumb_items()`
 * [New]: New public method `Library_Viewer_Shortcode::get_globals()`
 * [Enhancement]: Make shortcode & file classes to be loading **after init hook 
   with priority 100 only in front-end** and not when shortcode is executed.
 * [Enhancement]: Change inheritance of `protected` method `get_current_page_url()`
   to `public`.
 * [Bug Fix]: A notice has been added for when Library Viewer is incompatible with
   Library Viewer for WooCommerce.
 * [Deprecated]: `lv_before_breadcrumb_start` action has been deprecated. You can
   use filter lv_breadcrumb_html to **return** the HTML you want.
 * [Deprecated]: `lv_after_breadcrumb_start` action has been deprecated. You can
   use filter lv_breadcrumb_html to **return** the HTML you want.
 * [Deprecated]: `lv_after_breadcrumb_end` action has been deprecated. You can use
   filter lv_breadcrumb_html to **return** the HTML you want.
 * [Deprecated]: `lv_before_breadcrumb_end` action has been deprecated. You can 
   use filter lv_breadcrumb_html to **return** the HTML you want.
 * [Removed]: The global variable `LIBRARY_VIEWER_SHORTCODE` has been removed. You
   can replace it with `$GLOBALS['library_viewer_object']?->get_globals()`.
 * [Removed]: Library_Viewer_Init::get_library_viewer_file_identifier() static method
   removed. Use `apply_filters('lv_file_identifier', 'LV')` to get fil identifier.
 * [Removed]: The following deprecated hooks that are deprecated in version 2.0.0
   has been removed: `LV__folder_was_viewed`, “LV__file_was_viewed`,`LV__mime_types`,`
   wp_get_mime_types`,`LV__array_replace_to__in_filenames`,`LV__array_replace_from__in_foldernames`,`
   LV__array_replace_from__in_filenames`,`LV__folder_html`,`LV__file_html`
 * [Removed]: The protected properties of `Library_Viewer_Shortcode` (and its child
   classes), `shortcode_class_names`, `file_viewer_class_names`, and `all_class_names`
   have been removed and replaced by the `class_names` property.

#### 2.0.10

 * Tested up to WP: 6.7.1
 * [Bug Fix]: Resolved a minor issue in Library Viewer Pro when used with Library
   Viewer for WooCommerce.

#### 2.0.9

 * [Bug Fix]: Fix translation text domain

#### 2.0.8

 * Tested up to PHP: 8.2
 * Tested up to WP: 6.6.2
 * [New]: New filter lv_display_errors to restrict access to a folder. See more 
   details in docs.
 * [Enhancement]: Combine all CSS files into a single file to improve the UI for
   first-time content loading.
 * [Enhancement]: Fixed deprecated notices in non-standard environments or command-
   line scripts for server variables when using PHP 8.2.
 * [Enhancement]: Remove $GLOBALS[‘library_viewer_file_identifier’] and change it
   with static method Library_Viewer_Init::get_library_viewer_file_identifier()
 * [Enhancement]: Update Language pot (translation template) file
 * [Enhancement]: Rename Library_Viewer_Shortcode::hook() protected method to Library_Viewer_Shortcode::
   filter() and introduce Library_Viewer_Shortcode::action() method.
 * [CHANGELOG FIX]: lv_restrict_folder_access filter was never included in Library
   Viewer and its plugins codebase,
    instead in Library Viewer Pro introduced **
   guest_view_access parameter** and **global have_folder_access** that can be filtered
   with a WP hook

#### 2.0.7

 * Tested up to WP: 6.6.1
 * Tested up to PHP: 8.1
 * New Required PHP version: 7.0
 * [New]: Ability to change or unset (passing empty value) the default folder icon.
   
   Just add in lv_containing_folders in each folder value for folder_icon_html. 
   See docs of hook lv_containing_folders for more.
 * [New]: Ability to change or unset (passing empty value) the default file icon(
   default file icon is a span with no content).
 * [New]: New global have_folder_access. Determines who have access to folder contents.
   Can be filtered with WP hook with Library Viewer Pro!
 * [Enhancement]: New help methods in class Library_Viewer_Shortcode
 * [Enhancement]: In function lv_error_message(), need_to_login_button, go_back_button
   cases have been added in order to give the ability to developer to use them.
 * [Enhancement]: In filter lv_error_message, $s and $s2 have been added as filter’s
   parameters, because in some cases these strings are used in order to replace 
   the %s in translation strings.

#### 2.0.6.3

 * [Bug Fix]: Fix bug of Library Viewer Pro, if path parameter contains spaces.

#### 2.0.6.2

 * [Bug Fix]: Fix of not playing mp4/mp3 files in some cases.

#### 2.0.6.1

 * Tested up to WP 6.2
 * Potential vulnerability fixed: This could allow a malicious actor to redirect
   users from one site to the other due to the redirect URL not being validated.
   Users could be tricked to visiting a legitimate site to then be redirected to
   a malicious site and cause a phishing incident.
 * Potential vulnerability fixed: The plugin did not validate and escape some of
   its shortcode attributes before outputting them back in a page/post where the
   shortcode is embed, which could allow users with the contributor role and above
   to perform Stored Cross-Site Scripting attacks.
 * Thanks [Mika](https://www.buymeacoffee.com/mikadminfr) for reporting issues

#### 2.0.6

 * Tested up to WP 6.1.1
 * Required PHP: 5.6
 * [Bug Fix]: Fix of logout conflict in some cases.

#### 2.0.5

 * [New]: 2 new globals values added in the File class. file_folder_real_path, file_folder_abs_path
 * [New]: html attribute `library-viewer-name` has been added in the div with class`
   library-viewer--container`
 * [Enhancement]: Better message if a shortcode used more than 1 times in the same
   page.
 * [Bug Fix]: Fix a minor php warning when viewing a file with plugin’s file viewer
 * [Bug Fix]: Compatibility fixed with Library Viewer Pro

#### 2.0.4

 * Tested up to WP 5.9.2
 * [Bug Fix]: Compatibility fixed with Library Viewer File Manager Add-On
 * [Bug Fix]: Load textdomain in order to be able to get translations from wordpress.
   org

#### 2.0.3

 * Tested up to WP 5.8.1
 * [New]: `lv_filter_global_{$parameter}` filter introduced. With this filter, you
   can filter the parameters BEFORE the rest globals’ initialization.
 * [New]: `lv_breadcrumb_html` filter introduced. With this filter, you can filter
   the html of whole breadcrumb.
 * [New]: If `library` folder doesn’t exist, will be created automatically when 
   the shortcode will called in the front-end.
 * [Bug Fix]: In the $globals array that was passed in the hooks, value `current_viewer`
   was not existed. Now exists.
 * [Enhancement]: /languages/library-viewer.pot language template file has been 
   created.
 * [Enhancement]: On the filter `lv_file_anchor_html`, the variable $file_anchor_href
   has been also added in the array $file (2nd parameter). View hook’ documentation
   for more info.
 * [Enhancement]: `.library-viewer--folder h3{margin-top: 0; display: inline-block;}`
   css has been added.
 * [Enhancement]: $file_abs_path is added in the $all_files parameter ( $all_files[‘
   file_abs_path’] ) in the parameters of hooks: lv_containing_files, lv_file_icon_html,
   lv_file_html, lv_before_file, lv_after_file.
 * 
 * [Deprecated]: The filter `lv_shortcode_class_name` has been replaced by `lv_shortcode_class_names`.
   This is an advanced hook…
 * [Deprecated]: The filter `lv_file_viewer_class_name` has been replaced by `lv_file_viewer_class_names`.
   This is an advanced hook…

#### 2.0.2

 * [Deprecated]: `breadcrumb` value has been removed from Library Viewer globals
   parameter of all hooks. From now, there is only in Library Viewer Pro’s hooks
 * [Bug Fix]: Fix compatibility with Library Viewer Pro 2.0.1

#### 2.0.1

 * [Bug Fix]: Fix bug of Library Viewer Pro. Files weren’t opened…

#### 2.0.0

 * Tested up to WP 5.7
 * [Enhancement]: Add compatibility for symbols #, ? for file names and folder names
   of your library
 * [Enhancement]: Security update: Hidden folders (that have in their name the string‘
   hidden-folder’) and hidden-files (that have in their name the string ‘hidden-
   ile’), now,
    are not accessible, if you know the full path of the hidden folder/
   file.
 * [Enhancement]: Now the file link is being encoded and then is appended to the`
   my_doc_viewer` parameter. If you don’t want to be encoded use `lv_my_doc_viewer_file_encoded`
   filter.
 * [Deprecated]: `library-viewer--current-breadcrumb-item` class removed from breadcrumb
   current item. Replaced with the CSS rule `.library-viewer--breadcrumb-item:last-
   of-type`
    Hooks:
 * [Deprecated]: `LV__folder_was_viewed` action replaced with `lv_folder_was_viewed`
   action.
 * [Deprecated]: `LV__array_replace_to__in_foldernames` filter replaced with `lv_folder_fake_path_symbols`
   filter.
 * [Deprecated]: `LV__array_replace_from__in_foldernames` filter replaced with `
   lv_folder_real_path_symbols` filter.
 * [Deprecated]: `LV__array_replace_to__in_filenames` filter replaced with `lv_file_fake_path_symbols`
   filter.
 * [Deprecated]: `LV__array_replace_from__in_filenames` filter replaced with `lv_file_real_path_symbols`
   filter.
 * [Deprecated]: `LV__folder_html` filter replaced with `lv_folder_html` filter.
 * [Deprecated]: `LV__file_html` filter replaced with `lv_file_html` filter.
 * [Deprecated]: `LV__file_was_viewed` filter replaced with `lv_file_was_viewed`
   filter.
 * [New]: `lv_file_identifier` filter introduced. With this you can change the ‘/
   LV/’ that is the part of URL of a file.
 * [New]: `lv_before_breadcrumb_start` action introduced.
 * [New]: `lv_after_breadcrumb_start` action introduced.
 * [New]: `lv_breadcrumb_folder_delimiter_html` action introduced. You can change
   the delimiter of folders of breadcrumb.
 * [New]: `lv_breadcrumb_items` action introduced. With this filter, you can alter
   the breadcrumb items, for example the folder name and folder fake link.
 * [New]: `lv_before_breadcrumb_end` action introduced.
 * [New]: `lv_after_breadcrumb_end` action introduced.
 * [New]: `lv_empty_folder_html` filter introduced. If the current folder contains
   neither files nor folders, an equivalent message will be displayed an with filter.
   With this filter you can change it.
 * [New]: `lv_folder_text_at_beginning` filter introduced. This filter allow us 
   to add or change the text at beginning of the folder, i.e. the text before the
   first containing folder.
 * [New]: `lv_containing_folders` filter introduced. Containing folders of current
   folder filter.
 * [New]: `lv_folder_icon_html` filter introduced. Used to filter the html of folder
   icon.
 * [New]: `lv_folder_html` filter introduced. Used to filter the html output of 
   printed folder.
 * [New]: `lv_before_folder` action introduced.
 * [New]: `lv_after_folder` action introduced.
 * [New]: `lv_containing_files` filter introduced. Containing files of current folder
   filter.
 * [New]: `lv_file_icon_html` filter introduced. Used to set a file icon using php.
 * [New]: `lv_file_html` filter introduced. Used to filter the html output of printed
   file.
 * [New]: `lv_before_file` action introduced.
 * [New]: `lv_after_file` action introduced.
 * [New]: `lv_folder_text_at_end` filter introduced. This filter allow us to add
   or change the text at end of the folder, i.e. the text after the last containing
   file.
 * [New]: `lv_folder_was_viewed` action introduced. Do some actions if a folder 
   was accessed/viewed.
 * [New]: `lv_file_was_viewed` action introduced. Do some actions if a file was 
   accessed/viewed.
 * [New]: Filter `lv_my_doc_viewer_file_encoded` introduced. With this filter you
   can determine if the file will be appended to `my_doc_viewer` as encoded or not
   default is true (encoded).
 * [New]: Filter `lv_mime_types` introduced. If you want to add support for mime
   types that are not included, use this filter.

#### 1.2.3

 * Tested up to WP 5.6
 * [Enhancement]: In filter `LV__folder_html` introduced the $attributes parameter
 * [New]: filter `LV__file_html` introduced

#### 1.2.2

 * Tested up to WP 5.5.3
 * [Enhancement]: Change Library Viewer Pro URL in plugins’ page on dashboard

#### 1.2.1

 * [Bug Fix]: False Positive: shortcode [library-viewer] seams to be used more than
   1 times in the same page, but not

#### 1.2.0

 * Tested up to WP 5.5.1
 * [New]: LV__folder_was_viewed wordpress action was added in the code
 * [Enhancement]: From 1.2.0, the shortcode settings are saved in database, not 
   in files. Also, the folder /wp-content/uploads/library-viewer will be deleted!
 * [Bug Fix]: Now Library Viewer’ shortcode is supported in the homepage too
 * [New]: library-viewer has been added to the available values that my_doc_viewer
   can get
 * [Bug Fix in PRO]: The shortcode [library-viewer] cannot be used more than 1 times
   in the same page. This feature is available in Library Viewer Pro

#### 1.1.2

 * LV__mime_types wordpress filter was added in the code
 * LV__file_was_viewed wordpress action was added in the code
 * Tested up to WP 5.4.2

#### 1.1.1

 * Some errors has been fixed!

#### 1.1.0

 * now is possible to restrict users from open files by a **capability** using the
   have_file_access parameter
 * php die() replaced by wp_die() for more pretty messages
 * enhancement in code
 * delete folder library-viewer of your uploads folder on uninstall
 * now you can more easily add an icon in the front of a file using CSS

#### 1.0.7

 * Library Viewer has been tested up to WP 5.3.2
 * PHP Notices fixed

#### 1.0.6

 * Folders icons NOW are printed by css background-image attribute
 * Compatibility with sites that exist in a subdirectory fixed

#### 1.0.5

 * SECURITY PATCH (Please update NOW)

#### 1.0.3

 * Library Viewer has been tested up to WP 5.2.3
 * readme file was translated in Greek
 * Compatibility with Visual Composer have been tested and works fine
 * Instruction to fix the conflict with Remove Uppercase Ascents Plugin added in
   FAQ
 * Go Back button have been added in error messages

#### 1.0.2

 * Library Viewer has been tested up to WP 5.2.2
 * Link notice for Library Viewer Pro has been added in the backend (WP Plugins 
   Page)
 * Plugin URI has been fixed
 * A screenshot has been added in the Official WP Page of Library Viewer Plugin
 * Minor typo fixes in the readme file and Official WP Page of Library Viewer Plugin

#### 1.0.1

 * Compatibility have added for most common special characters(**+** , **&** , **‘**,**.**)
 * Redirect waiting time to login is now 5 seconds (if you want to change this you
   need to buy the [Library Viewer Pro](https://www.pexlechris.dev/library-viewer/pro-wp))
 * The ability of encryption of the real path of your folder (with hash technique)
   moved to [Library Viewer Pro](https://www.pexlechris.dev/library-viewer/pro-wp)

#### 1.0.0

 * Initial Release.

## Meta

 *  Version **3.3.0**
 *  Last updated **2 ሰዓቶች ago**
 *  Active installations **400+**
 *  WordPress version ** 3.0.0 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/library-viewer/)
 * Tags
 * [download manager](https://am.wordpress.org/plugins/tags/download-manager/)[File List](https://am.wordpress.org/plugins/tags/file-list/)
   [file manager](https://am.wordpress.org/plugins/tags/file-manager/)[ftp](https://am.wordpress.org/plugins/tags/ftp/)
 *  [Advanced View](https://am.wordpress.org/plugins/library-viewer/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  13 5-star reviews     ](https://wordpress.org/support/plugin/library-viewer/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/library-viewer/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/library-viewer/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/library-viewer/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/library-viewer/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/library-viewer/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/library-viewer/reviews/)

## Contributors

 *   [ Pexle Chris ](https://profiles.wordpress.org/pexlechris/)

## ድጋፍ

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/library-viewer/)