Using Magento 2.3.5 with Porto Theme and realized the Category Page Title is missing at the top of the Category Page. All other Magento sites I have used has the title displayed towards the top of the page in larger text. (I'm assuming this is what is called the H1 Tag?)
This new site I am working on does not have this and wondering what can be done to get it to display.
From what I have read this the path I need to use, However I am not sure if this is the correct code to use and not sure what to add or change for the title to display: Vendor/Magento/module-theme/view/frontend/html/title.phtml
getCssClass() ? ' ' . $block->getCssClass() : ''; $titleHtml = ''; if (trim($block->getPageHeading())) { $titleHtml = 'getAddBaseAttribute() . '>' . $block->escapeHtml($block->getPageHeading()) . ''; } ?> escapeHtmlAttr($cssClass) ?>"> getId()) : ?> id="escapeHtmlAttr($block->getId()) ?>" getAddBaseAttributeAria()) : ?> aria-labelledby="escapeHtmlAttr($block->getAddBaseAttributeAria()) ?>" > getChildHtml() ?>
and
Vendor/Magento/module-catalog/view/frontend/layout/catalog_category_view.xml
<?xml version="1.0"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="2columns-left" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="columns.top">
<container name="category.view.container" htmlTag="div" htmlClass="category-view" after="-">
<block class="Magento\Catalog\Block\Category\View" name="category.image" template="Magento_Catalog::category/image.phtml"/>
<block class="Magento\Catalog\Block\Category\View" name="category.description" template="Magento_Catalog::category/description.phtml"/>
<block class="Magento\Catalog\Block\Category\View" name="category.cms" template="Magento_Catalog::category/cms.phtml"/>
</container>
</referenceContainer>
<referenceContainer name="content">
<block class="Magento\Catalog\Block\Category\View" name="category.products" template="Magento_Catalog::category/products.phtml">
<block class="Magento\Catalog\Block\Product\ListProduct" name="category.products.list" as="product_list" template="Magento_Catalog:roduct/list.phtml">
<container name="category.product.list.additional" as="additional" />
<block class="Magento\Framework\View\Element\RendererList" name="category.product.type.details.renderers" as="details.renderers">
<block class="Magento\Framework\View\Element\Template" name="category.product.type.details.renderers.default" as="default"/>
</block>
<block class="Magento\Catalog\Block\Product\ProductList\Item\Container" name="category.product.addto" as="addto">
<block class="Magento\Catalog\Block\Product\ProductList\Item\AddTo\Compare"
name="category.product.addto.compare" as="compare"
template="Magento_Catalog:roduct/list/addto/compare.phtml"/>
</block>
<block class="Magento\Catalog\Block\Product\ProductList\Toolbar" name="product_list_toolbar" template="Magento_Catalog:roduct/list/toolbar.phtml">
<block class="Magento\Theme\Block\Html\Pager" name="product_list_toolbar_pager"/>
</block>
<action method="setToolbarBlockName">
<argument name="name" xsi:type="string">product_list_toolbar</argument>
</action>
</block>
</block>
<block class="Magento\Cookie\Block\RequireCookie" name="require-cookie" template="Magento_Cookie::require_cookie.phtml">
<arguments>
<argument name="triggers" xsi:type="array">
<item name="compareProductLink" xsi:type="string">.action.tocompare</item>
</argument>
</arguments>
</block>
</referenceContainer>
<referenceBlock name="page.main.title">
<arguments>
<argument name="id" xsi:type="string">page-title-heading</argument>
<argument name="add_base_attribute_aria" xsi:type="string">page-title-heading toolbar-amount</argument>
</arguments>
<block class="Magento\Catalog\Block\Category\Rss\Link" name="rss.link" template="Magento_Catalog::category/rss.phtml"/>
</referenceBlock>
</body>
</page>
Seems like your variable is just empty. Always look what is inside of your object by dumping it or inspecting it with debugger
<?php print_r($_product);?>
or if its too large and has many references then try to see object parameters only
<?php print_r(array_keys($_product));?>
Then you can inspect yourself what variables you can ask directly from object or what you need to query or extend your collections to get by default.
Its worth to look if your product name attribute is enabled for listings (from attribute settings).
Read more: How To Change Homepage Title In Magento 2