---
title: "FAQ"
manual: "T3Extblog (T3Blog Extbase)"
version: "main"
permalink: "https://docs.typo3.org/permalink/felixnagel/t3extblog:faq@main"
source: "FAQ/Index.rst"
rendered: "2026-10-29T16:01:34+00:00"
---

# FAQ {#faq}

**Within this page**

-   [Configure RTE](https://docs.typo3.org/permalink/felixnagel/t3extblog:configure-rte@main)
-   [Some links are broken, i.e. categories, archive or rss](https://docs.typo3.org/permalink/felixnagel/t3extblog:some-links-are-broken-i-e-categories-archive-or-rss@main)
-   [RSS Output instead of page](https://docs.typo3.org/permalink/felixnagel/t3extblog:rss-output-instead-of-page@main)
-   [Logging](https://docs.typo3.org/permalink/felixnagel/t3extblog:logging@main)
-   [Link RSS in page header](https://docs.typo3.org/permalink/felixnagel/t3extblog:link-rss-in-page-header@main)
-   [Add canonical tag to page header](https://docs.typo3.org/permalink/felixnagel/t3extblog:add-canonical-tag-to-page-header@main)
-   [Does it work together with "indexed search engine"?](https://docs.typo3.org/permalink/felixnagel/t3extblog:does-it-work-together-with-indexed-search-engine@main)
-   [Can I override the basic templates?](https://docs.typo3.org/permalink/felixnagel/t3extblog:can-i-override-the-basic-templates@main)
-   [Sitemap](https://docs.typo3.org/permalink/felixnagel/t3extblog:sitemap@main)
-   [Breadcrumb menu](https://docs.typo3.org/permalink/felixnagel/t3extblog:breadcrumb-menu@main)
-   [Does it work with EXT:dd_googlesitemap?](https://docs.typo3.org/permalink/felixnagel/t3extblog:does-it-work-with-ext-dd-googlesitemap@main)
-   [Filtering tags doesn't work?](https://docs.typo3.org/permalink/felixnagel/t3extblog:filtering-tags-doesn-t-work@main)
-   [Link handler configuration](https://docs.typo3.org/permalink/felixnagel/t3extblog:link-handler-configuration@main)
-   [Set default post category](https://docs.typo3.org/permalink/felixnagel/t3extblog:set-default-post-category@main)
-   [Disable post fields](https://docs.typo3.org/permalink/felixnagel/t3extblog:disable-post-fields@main)
-   [Translation / Localization](https://docs.typo3.org/permalink/felixnagel/t3extblog:translation-localization@main)
-   [Clear frontend cache](https://docs.typo3.org/permalink/felixnagel/t3extblog:clear-frontend-cache@main)
-   [Some output tweaks](https://docs.typo3.org/permalink/felixnagel/t3extblog:some-output-tweaks@main)
-   [TYPO3 CMS legacy support](https://docs.typo3.org/permalink/felixnagel/t3extblog:typo3-cms-legacy-support@main)

## Configure RTE {#configure-rte}

**Using TSconfig:**

`RTE.config.tt_content.bodytext.preset = my_rte_preset`
`RTE.config.tx_t3blog_post.preview_text.preset = my_rte_preset`

> [!IMPORTANT]
> -   **Be careful, this will configure the RTE for all `tt_content` `bodytext` fields!**
>
>     Use TCA overrides if you want to configure the blog content RTE only.

**Using TCA overrides:**

Create a TCA override for post records:

`my_site_package/Configuration/TCA/Overrides/tx_t3blog_post.php`

With this content:

```php
$GLOBALS['TCA']['tx_t3blog_post']['columns']['content']['config']['overrideChildTca']['columns']['bodytext']['config']['richtextConfiguration'] = 'my_rte_preset';
$GLOBALS['TCA']['tx_t3blog_post']['columns']['preview_text']['config']['richtextConfiguration'] = 'my_rte_preset';
```

## Some links are broken, i.e. categories, archive or rss {#some-links-are-broken-i-e-categories-archive-or-rss}

Check if `plugin.tx_t3extblog.settings.blogsystem.pid` is set right (see [Installation](https://docs.typo3.org/permalink/felixnagel/t3extblog:installation@main)).

## RSS Output instead of page {#rss-output-instead-of-page}

Remove static template `T3Extblog: RSS setup (t3extblog)`. It should only be included on a separate RSS specific page.

## Logging {#logging}

Versions later than 5.0.0 of this extension use the TYPO3 PSR-3 logging:
[https://docs.typo3.org/m/typo3/reference-coreapi/9.5/en-us/ApiOverview/Logging/Configuration/Index.html](https://docs.typo3.org/m/typo3/reference-coreapi/9.5/en-us/ApiOverview/Logging/Configuration/Index.html)

By default, all errors are logged into `var/logs/typo3_t3extblog_xyz.log`.
When in `Development` application context all debug and notice messages will be logged too.

Feel free to adjust this as you wish. For example configure the log to include messages
about blocked comments and subscriptions:

```php
$GLOBALS['TYPO3_CONF_VARS']['LOG']['FelixNagel']['T3extblog']['writerConfiguration'] = [
    \TYPO3\CMS\Core\Log\LogLevel::NOTICE => [
        \TYPO3\CMS\Core\Log\Writer\FileWriter::class => [
            'logFileInfix' => 't3extblog',
        ],
    ]
];
```

## Link RSS in page header {#link-rss-in-page-header}

Use following TS config where `123` is the UID of yours RSS page:

```typoscript
page.headerData {
	100 =  TEXT
	100.wrap = <link rel="alternate" type="application/rss+xml" title="Blog RSS Feed" href="|" />
	100.typolink {
		parameter = 123
		returnLast = url
		forceAbsoluteUrl = 1
	}
}
```

## Add canonical tag to page header {#add-canonical-tag-to-page-header}

Use following TS config:

```typoscript
[globalVar = GP:tx_t3extblog_blogsystem|post > 0]
	page.headerData.123 {
	   wrap = <link rel="canonical" href="|">
        htmlSpecialChars = 1

        typolink {
           parameter.data = TSFE:id
           forceAbsoluteUrl = 1
           returnLast = url
           additionalParams.cObject = COA
           additionalParams.cObject {
              10 = TEXT
              10.dataWrap = &tx_t3extblog_blogsystem[controller]=Post&tx_t3extblog_blogsystem[action]=show&tx_t3extblog_blogsystem[post]={GP:tx_t3extblog_blogsystem|post}&tx_t3extblog_blogsystem[year]={GP:tx_t3extblog_blogsystem|year}&tx_t3extblog_blogsystem[month]={GP:tx_t3extblog_blogsystem|month}&tx_t3extblog_blogsystem[day]={GP:tx_t3extblog_blogsystem|day}
              10.if.isTrue.data = GP:tx_t3extblog_blogsystem|post
           }
        }
	}
[global]
```

## Does it work together with "indexed search engine"? {#does-it-work-together-with-indexed-search-engine}

Yes! T3extblog works together with "indexed search engine". Once your posts are indexed, your visitors can search through all your posts.
You should restrict indexing to the main content (blogposts) and exclude latest posts, the category module etc. to get useful results.

## Can I override the basic templates? {#can-i-override-the-basic-templates}

Copy the template files (`t3extblogResourcesPrivateSetLayouts` +Partials +Templates)
in your fileadmin or custom extension and set the path via TS or constant editor.

See [Configuration](https://docs.typo3.org/permalink/felixnagel/t3extblog:configuration-overwrite-templates@main) for code snippets!

## Sitemap {#faq-sitemap}

> [!IMPORTANT]
> Make sure to install EXT:seo (package name `typo3/cms-seo`)!

This extension include a preconfigured setup for the TYPO3 CMS core feature sitemap
which could be included as a static template.
See `t3extblog/Configuration/TypoScript/Sitemap/setup.typoscript` for details.

> [!TIP]
> -   **See here for more info on core sitemaps:**
>
>     [https://usetypo3.com/xml-sitemap-in-typo3.html](https://usetypo3.com/xml-sitemap-in-typo3.html)
>     [https://docs.typo3.org/c/typo3/cms-core/master/en-us/Changelog/9.4/Feature-84525-XMLSitemap.html](https://docs.typo3.org/c/typo3/cms-core/master/en-us/Changelog/9.4/Feature-84525-XMLSitemap.html)

## Breadcrumb menu {#faq-breadcrumb}

This extension comes with a custom menu processor for blog posts. Use it like this:

```typoscript
page = PAGE
page {
   10 = FLUIDTEMPLATE
   10 {
      dataProcessing {
         # Core menu processor for pages
         100 = menu
         100 {
            as = schemaBreadcrumbMenu
            special = rootline
            special.range = 1|-1
         }
         # Custom menu processor for posts
         110 = FelixNagel\T3extblog\DataProcessing\PostMenuProcessor
         110 {
            as = schemaBreadcrumbMenu
         }
      }
   }
}
```

Example usage with a simple breadcrumb markup (incl. schema.org semantic sugar):

```xml
<nav aria-label="breadcrumb">
	<ol class="breadcrumb" itemscope itemtype="https://schema.org/BreadcrumbList">
		<f:for as="menuItem" each="{schemaBreadcrumbMenu}" iteration="iterator">
			<li class="breadcrumb-item{f:if(condition: '{menuItem.current}', then: ' active')}"
					itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
				<a itemprop="item" href="{f:uri.typolink(parameter: menuItem.link, absolute: true)}">
					<span itemprop="name">{menuItem.title}</span>
				</a>
				<meta itemprop="position" content="{iterator.cycle}" />
			</li>
		</f:for>
	</ol>
</nav>
```

> [!IMPORTANT]
> -   **Alternatively, you can use EXT:schema (package name `brotkrueml/schema`) and use the built-in view helper:**
>
>     `<schema:breadcrumb breadcrumb="{schemaBreadcrumbMenu}"/>`

## Does it work with EXT:dd_googlesitemap? {#does-it-work-with-ext-dd-googlesitemap}

Yes! Use this syntax: `?eID=dd_googlesitemap&sitemap=t3extblog&pidList=123` (where 123 is your storage folder page id).
Add an optional 'limit' parameter for very large blogs. Example: `&limit=100`.

> [!IMPORTANT]
> No longer support since version 5.x! Use the new core feature instead: [SEO sitemap support](https://docs.typo3.org/permalink/felixnagel/t3extblog:faq-sitemap@main)

> [!TIP]
> Since Google supports RSS-Feeds, we recommend to use this solution!

## Filtering tags doesn't work? {#filtering-tags-doesn-t-work}

To avoid filling the cache with not existing pages, the filter only works with tags => 3 letters.

## Link handler configuration {#faq-link-handler}

Since TYPO3 8.7 a built in link handler is integrated into the core.
See here for more info: [https://docs.typo3.org/typo3cms/extensions/core/Changelog/8.6/Feature-79626-IntegrateRecordLinkHandler.html](https://docs.typo3.org/typo3cms/extensions/core/Changelog/8.6/Feature-79626-IntegrateRecordLinkHandler.html)

Replace 123 with your storage PID and 456 with the PID of your blogsystem plugin page.

**Example page TSconfig configuration:**

```typoscript
TCEMAIN.linkHandler {
   tx_t3blog_post {
       handler = TYPO3\CMS\Backend\LinkHandler\RecordLinkHandler
       label = Blog-Post
       configuration {
           table = tx_t3blog_post
           storagePid = 123
           hidePageTree = 1
       }
       scanAfter = page
   }
   tx_t3blog_cat {
       handler = TYPO3\CMS\Backend\LinkHandler\RecordLinkHandler
       label = Blog-Category
       configuration {
           table = tx_t3blog_cat
           storagePid = 123
           hidePageTree = 1
       }
       scanAfter = page
   }
}
```

**TypoScript configuration**

```typoscript
config.recordLinks {
   tx_t3blog_post {
      typolink {
         parameter = 456
         additionalParams.cObject = COA
         additionalParams.cObject {
            10 = TEXT
            10.value = &tx_t3extblog_blogsystem[controller]=Post

            20 = TEXT
            20.value = &tx_t3extblog_blogsystem[action]=show

            30 = TEXT
            30.dataWrap = &tx_t3extblog_blogsystem[post]={field:uid}
         }
         title.field = title
         useCacheHash = 1
      }
   }
   tx_t3blog_cat {
      typolink {
         parameter = 456
         additionalParams = &tx_t3extblog_blogsystem[category]={field:uid}
         additionalParams.insertData = 1
         useCacheHash = 1
      }
   }
}
```

## Set default post category {#set-default-post-category}

Add this to the page or user TSconfig:

```typoscript
TCAdefaults {
	tx_t3blog_post {
		# CSV of category UIDs
		cat = 1,2,3

		# Works for other fields too!
		hidden = 0
	}
}
```

## Disable post fields {#disable-post-fields}

Add something similar to the page or user TSconfig:

```typoscript
TCEFORM.tx_t3blog_post {
	# Just some examples...
	hidden.disabled = 1
	starttime.disabled = 1
	endtime.disabled = 1

	preview_mode.disabled = 1
	preview_text.disabled = 1
}
```

> [!TIP]
> **Hint**
>
> Do not hide the `date` field as it's needed for sorting!

## Translation / Localization {#translation-localization}

Localization works like for any other TYPO3 extension:

```typoscript
plugin.tx_t3extblog._LOCAL_LANG {
	en {
		comment.human = Please confirm!
	}
}
```

**Adding localizations**

Feel free to add new localization!

Crowdin project: [https://crowdin.com/project/typo3-extension-t3extblog](https://crowdin.com/project/typo3-extension-t3extblog)

More information about TYPO3 translations:
[https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/Internationalization/TranslationServer/Crowdin.html](https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/Internationalization/TranslationServer/Crowdin.html)

## Clear frontend cache {#faq-clear-cache}

Since version 2.2.0 this extension makes use of cache tags. The following cache tags are available:

-   tx_t3extblog
-   tx_t3extblog_PID
-   tx_t3blog_post_uid_UID
-   tx_t3blog_post_pid_PID
-   tx_t3blog_com_pid_PID
-   tx_t3blog_cat_pid_PID

*PID = page uid, UID = record uid*

Cache tags are cleared by a built-in functionality when a record is modified or created in backend and frontend.

This works by adding cache tags for each page rendered with a t3extblog plugin. Each time a blog record is edited,
deleted or created, this cache entry is flushed. No additional cache configuration is needed.

It's still possible to use TS config for adjusting the cache behaviour. This could be basic configuration (see below) or
using a more advanced tag approach:

```typoscript
# Flushes all blog related caches
TCEMAIN.clearCacheCmd = cacheTag:tx_t3extblog

# Flushes cache for all records in page with UID 123
TCEMAIN.clearCacheCmd = cacheTag:tx_t3extblog_123
```

### Before version 2.2.0 {#before-version-2-2-0}

When a **frontend user adds a new comment** the blogsystem plugin page cache is cleared using default TYPO3 extbase
functionality.

When **editing records in backend** (for example posts or comments) as a non admin user the cache needs to be cleared
manually or by using page TS config:

```typoscript
# PIDs of page which need to be cleared
TCEMAIN.clearCacheCmd = 123,456,789
```

The code needs to be added to the sys folder where the blog records are edited.

> [!TIP]
> **Hint**
>
> The mentioned TCEMAIN settings are part of the TYPO3 core and can be used therefore not only for the t3extblog extension.

## Some output tweaks {#some-output-tweaks}

### Category-Module {#category-module}

#### Add number of articles per category {#add-number-of-articles-per-category}

Just add `<f:count>{category.posts}</f:count>` to `Templates/Category/List.html`.
This function is expensive, so we don't add it to the standard template files.

### Detail-View (show post) {#detail-view-show-post}

#### Add prev/next-function {#add-prev-next-function}

Link the previous / next article in the detail view of a post. The following lines will do the job, add them in Templates/Post/Show.html

```xml
<f:if condition="{nextPost.linkParameter}">
	<f:then>
		<f:link.action controller="Post" action="show" pageUid="{settings.blogsystem.pid}" arguments="{nextPost.linkParameter}"> &lt; {nextPost.title} </f:link.action>
	</f:then>
</f:if>
<f:if condition="{previousPost.linkParameter}">
	<f:then>
		<f:link.action controller="Post" action="show" pageUid="{settings.blogsystem.pid}" arguments="{previousPost.linkParameter}"> {previousPost.title} &gt; </f:link.action>
	</f:then>
</f:if>
```

## TYPO3 CMS legacy support {#typo3-cms-legacy-support}

### Since version 6.x {#since-version-6-x}

Please take a look here which branch / version suites your needs:
[https://github.com/fnagel/t3extblog/blob/master/README.md#installation](https://github.com/fnagel/t3extblog/blob/master/README.md#installation)

### Version 4.5 - 4.7 {#version-4-5-4-7}

There is a legacy branch for TYPO3 4.5-4.7. It's functional (tested in TYPO3 4.7) but needs some fixes backported.
Please open an issue on GitHub if you are interested in a bugfixed 4.5 branch.

Version 0.9.1 of this extension is NOT compatible with TYPO3 4.5 or 4.7 even if TER says otherwise.
You will need to use this branch: [https://github.com/fnagel/t3extblog/tree/legacy](https://github.com/fnagel/t3extblog/tree/legacy)
