WordPress in PrestaShop – Pro blog integration | PrestaDev
WordPress in PrestaShop – Pro blog integration | PrestaDev
WordPress in PrestaShop – Pro blog integration | PrestaDev
WordPress in PrestaShop – Pro blog integration | PrestaDev
WordPress in PrestaShop – Pro blog integration | PrestaDev
WordPress in PrestaShop – Pro blog integration | PrestaDev
WordPress in PrestaShop – Pro blog integration | PrestaDev
WordPress in PrestaShop – Pro blog integration | PrestaDev

WordPress Pro Integration Module for PrestaShop

Module version: 3.0.0

PrestaShop compatibility: 1.7.x 8.x 9.x

Module file updated: 10/11/2026 10:48:49

Product data updated: 10/11/2026 11:12:58


1 Reviews

A module that allows adding the latest posts from our WordPress blog to our store; the block can be displayed in the right or left column, on the homepage, or as a menu item (link), with the option to configure how many posts should be fetched, from which categories or authors, the ability to sort by date, display the main image of the post, and several other interesting options. Please refer to the full list of features below.

License type / update
zł 78.00
zł 63.41no tax
Price history:

Description

Key features and functionalities of the module

  • Two ways to connect to WordPress: reading the public REST API based on the blog address or connecting to the WordPress database.
  • Content selection: filtering posts by categories and authors, ordering by publication date, and an option to place pinned posts first.
  • A pool of 1 to 100 posts: a shared range of articles used by blocks, product pages, and the blog page in a given store.
  • Several display locations: homepage, left and right column, product page, and a custom location called in the template.
  • Product associations: comparing category names and product tags with the categories and tags of fetched articles.
  • Blog page in PrestaShop: a list of post excerpts with pagination, category filter, custom title, meta description, and URL.
  • Appearance configuration: grid or list for content blocks, number of columns, excerpt length, image size, and selection of visible information.
  • Update control: manual post fetching, refresh after cache expiration, or fetching via a CRON job.
  • Marking links with UTM parameters: information about the source, campaign, and place of transition from the store to WordPress.
  • Support for multiple stores and languages: shared, group, or store-specific settings, as well as blog page headings and description depending on the language.

Guides matched to products

On the product page, the module searches for related posts in the fetched pool of articles. It compares the names of WordPress post categories and tags with the names of product categories and tags in the active store languages. During comparison, it standardizes letter case and spacing; the basis for matching remains name consistency. Posts with a higher number of matches are displayed first.

For example, an article marked in WordPress with the category or tag “Shoe care” may appear next to a product belonging to a category with the same name or having such a tag. This makes it possible to provide the customer with a guide related to the viewed assortment. If the module does not find a match, you can hide the block or display posts from the fetched pool in its configured order.

Publishing in WordPress, displaying in PrestaShop

Content is still created in WordPress, and the store uses its fetched copy. The module reads posts and does not save changes to WordPress. Titles and links lead to full articles on the blog, so there is no need to manually rewrite their excerpts into the store.

Connection via REST API

In this mode, you provide the WordPress site address. The module uses its public REST API, without WordPress admin login credentials. The blog may operate on a different domain or server, provided that the API is accessible from the store server. Reading includes posts made publicly available through the API; password-protected posts are skipped.

Connection to the database

The alternative mode requires the host, port, database name, user, password, and WordPress table prefix. Read-only data access permissions are sufficient. The module selects published posts without a password directly from the tables. This reading method does not trigger the additional access mechanisms of WordPress plugins, therefore for content restricted by such plugins, you should use an API providing the proper range of public posts.

Display locations and number of posts

  • Homepage: from 1 to 24 posts.
  • Left and right column: separate visibility switches and a shared number from 1 to 10 posts.
  • Product page: from 1 to 12 posts, taking product matching into account.
  • Custom location in the template: from 1 to 24 posts, after enabling this function and calling the widget or the module’s custom hook.

Each of these locations can be enabled or disabled. The availability of standard positions depends on the hooks displayed by the store theme. Custom placement allows you to insert the block into a selected part of the Smarty template.

Blog page within the store

The module creates a page in PrestaShop with a grid of excerpts from fetched articles. You can set from 4 to 48 posts per page there. An optional filter allows switching between categories present in the fetched pool and shows the number of available posts; it appears when the pool contains more than one category. Pagination and filtering apply to this pool, while full articles remain in WordPress.

The page has its own title, meta description, and configurable URL, for example “blog” or “guides”. A friendly URL requires friendly URLs to be enabled in PrestaShop. The module checks for conflicts with existing store URLs when saving it. You add the link to the blog page yourself in the store menu configuration.

The page controller sets the title and meta description, the canonical URL taking the category and page number into account, as well as breadcrumb navigation. For a page without posts, it sets the “noindex” directive, while invalid page numbers and unknown categories are handled as a 404 error.

Block appearance and article information

Blocks on the homepage, product page, and in a custom location can use a grid or list. For the grid, 2, 3, or 4 columns are available on larger screens, with fewer columns on narrower screens. Side columns use a compact view, and the blog page in the store uses a grid.

  • Excerpt: length from 0 to 1000 characters; a value of 0 disables its display. The content is presented as text, without reproducing the article layout and WordPress editor elements.
  • Featured image: the ability to disable images and choose a size available in WordPress. If the selected size is not available, the module looks for a larger variant or uses the original image. Images are displayed from the source URLs.
  • Post information: switches for publication date, author, categories, tags, and number of comments. In REST mode, the comment counter appears when the full set of required data can be fetched.
  • Headings: a shared title for blocks on the homepage, in columns, and in a custom location, a separate section title on the product page, and a separate title for the blog page.
  • Links: the ability to open transitions to WordPress in a new tab and choose an additional link to the blog page in the store or to WordPress, or hide this link.

In the compact side column view, the module omits the excerpt, categories, and tags to limit content in a narrow space.

Fetched copy of posts and refresh control

The module stores a copy of post data separately for each store. This makes it possible to use fetched content without retrieving it from WordPress every time a block is displayed. In the panel, you will see the connection status, the number of available posts, the fetch date, error information, and an article preview.

  • Refresh during a visit: for a time from 1 to 168 hours, the store attempts to fetch after this period has elapsed, on the next visit requiring the module data.
  • Manual refresh: a button on the dashboard allows you to fetch posts on demand.
  • Refresh via CRON: the panel provides a tokenized URL to be called by the server scheduler. The task handles active stores with the module enabled and a configured source.
  • Mode without fetching during visits: a time of 0 means refreshing only by button or CRON job.

If refreshing the same source and post range ends with an error, the store may still show the last correctly fetched copy. Deleting the copy in the panel concerns the module data in the store and does not remove articles from WordPress. You configure the CRON scheduler outside the module.

UTM parameters in links to WordPress

After enabling UTM, the module adds the selected source and campaign name, the “referral” medium, and a marker of the display location to links leading to WordPress. Thanks to this, the URL conveys information about whether the transition came, for example, from the homepage block, product page, or blog page. Interpretation of these parameters requires an analytics tool operating on the blog side; the module does not include its own traffic or conversion reports.

Multistore and headings in store languages

The connection to WordPress, post selection, and appearance can be configured for the entire installation, a store group, or an individual store. Individual stores can use different blogs, and their fetched data copies are separate. The module supports settings inheritance and restoring parent values for the selected tab.

Block headings, the product section title, the blog page title, and its meta description can be saved for individual languages. Post content is displayed in the language received from WordPress, without automatic translation of articles.

Who is this integration for?

The module is intended for PrestaShop stores running a separate WordPress blog with guides, inspiration, or news. It makes it easier to present excerpts of this content alongside the store offer and share related articles on product pages. The store owner keeps publishing in WordPress and control over the selection and presentation of posts in PrestaShop.

The module is intended for PrestaShop 1.7, 8, and 9. Its code covers PHP from 7.0 to 8.5, while the server must also meet the requirements of the PrestaShop version in use. Reading via REST requires an available public WordPress API and support for HTTP connections in PHP, while reading from the database requires PDO MySQL and access to the WordPress database.

Product Details

Support for Prestashop 8.x
Yes
Prestashop 1.7.x support
Yes
Prestashop 1.6.x support
Yes
PrestaShop 1.5x support
Yes
Module translations
EN, EN
Free updates (1 year)
Yes
Easy Installation
Yes
PDPOSTWP-FULL

FAQ

Find answers to the most common questions about this product.

The module supports WordPress blog posts. REST mode reads posts publicly available via the API and skips password-protected posts; database mode selects published posts without a password. It does not retrieve drafts or private posts and does not support WordPress pages or custom post types as separate sources.

Yes. In the configuration, you select categories and authors to limit the pool of entries to be retrieved. If no categories or authors are selected, there is no restriction for that filter. The list of available choices depends on the data provided by the selected WordPress source.

You can set the order from newest to oldest or from oldest to newest by publication date. A separate option places sticky posts from WordPress at the beginning. The module can then also retrieve older sticky articles while maintaining the set limit of the final pool.

You set the number of entries to be fetched from 1 to 100. This pool is used by blocks, article assignment to products, and the blog page in the store. The module does not search the entire WordPress archive every time it is displayed, nor does it automatically fetch all of its articles.

Available locations are the homepage, the left and right column, and the product page, where the module uses the displayFooterProduct hook. After enabling a custom location, you can call the widget or the displayCustomWipHook hook in the template. A separate blog page in the store also works. The visibility of standard locations depends on the hooks used by the theme.

Yes. For the homepage and custom location, you can set from 1 to 24 entries, and for the product page from 1 to 12. The left and right columns have separate visibility toggles, but share a common number of 1 to 10 entries. Each block uses the available retrieved pool, so it may display fewer entries than the set limit.

Moduł porównuje nazwy kategorii i tagów produktu z nazwami kategorii i tagów pobranych wpisów WordPressa. Uwzględnia te nazwy w aktywnych językach sklepu, pomijając główne kategorie systemowe. Wpisy z większą liczbą zgodnych nazw wyświetla wcześniej, a przy remisie zachowuje kolejność pobranej puli.

Entries can be retrieved manually using the button on the dashboard or via a CRON job. With a refresh interval of 1 to 168 hours, the module attempts retrieval after this period has expired, during the next visit that requires its data. Simply setting the number of hours does not create a schedule that runs in the background without traffic in the store.

A value of 0 disables automatic retrieval of entries during visits to the store. Refreshing then takes place exclusively via the button in the panel or through CRON. If you delete the downloaded copy, the entries will not reappear until the next such retrieval.

The task URL with a token is available on the module dashboard and should be added to the server scheduler or a service that calls URL addresses. The module provides the task, and you configure the scheduler outside of it. Calling it refreshes entries for active stores with the module enabled and a configured source. After generating a new token, the URL in the scheduler must be updated.

If the module has previously fetched a valid copy for the same source and entry range, the store may continue to display it despite the refresh error. The panel shows information about the issue and the fetch date. Without an available valid copy, the blocks do not display entries, and the blog page indicates their absence. Changing the source or filters does not cause entries from the previous range to be displayed.

No. Deleting the copy applies to the module data within the selected range of PrestaShop stores. WordPress articles and files remain unchanged. With a refresh interval greater than zero, entries may be fetched again during a visit; with a value of 0, manual fetching or CRON is required.

The dashboard shows the source status, the number of available entries, the retrieval date, the method of the next refresh, and error information. It provides a preview of the retrieved articles, the status of display placements, and refresh and copy deletion buttons. An authorized employee can also copy the CRON address and generate a new token.

Tak. Połączenie, filtry i wygląd mogą mieć ustawienia własne pojedynczego sklepu, a każdy sklep ma oddzielną pobraną kopię wpisów. Można również korzystać z wartości wspólnych dla instalacji lub grupy sklepów i przywracać dziedziczenie ustawień danej zakładki. Jeden sklep korzysta z jednego skonfigurowanego źródła WordPressa.

Reviews (1)

1 Reviews

Języki
Ogólnie moduł fajnie działa, problem powstaje gdy ma sie niestandardowy motyw jak DIVI lub Elementor itp, ale kilka sztuczek w bazie danych i działa wszystko jak należy
By on 10/27/2022