パンくずのaタグに構造化用の属性を付与したい

【環境情報】
・baserCMSのバージョン:4.0.8
・レンタルサーバー名:XSERVER
・使用テーマ:オリジナル
・PHPスキル(自己評価):D

aタグの属性についてお伺いしたいんですが、

<?php $this->BcBaser->crumbsList(); ?>

で出力されるパンくずのaタグに、構造化のための属性を追加したいと思っているんですが、
現状ホームへのパンくずのリンクが

<a href="https://narita-bitte.com/">ホーム</a>

こうなっているので、これを

<a href="https://narita-bitte.com/" itemprop=”item”>ホーム</a>

このように「itemprop=”item”」という属性をaタグに持たせたいのですが、 テーマ内のcrumbs.phpを見ると、aタグの部分は

$this->BcBaser->addCrumb($crumb['name'], $crumb['url']);

$this->BcBaser->crumbs(' &gt; ', 'ホーム');

のような関数で出力してあり、 リファレンスなどをみてもarray(‘forceTitle’ => true) のようなタイトルのオプションは書いてあったのですが、それではなさそうかなと思い、 調べてみたらHtmlHelperというのでclassやtargetは指定できそうだということが分かったのですが、 HTML属性ではない属性を好きに追加する書き方がわかりません。 このbaserのaddCrumb関数でHTML属性以外の属性を追加することは可能なのでしょうか?
ご教授いただければ幸いです。

また

<?php $this->BcBaser->crumbsList(['onSchema' => true]); ?>

というonSchemaを指定する書き方を教えてもらったんですが、特にパンくずに変化はありませんでした。このonSchemaを入れる事で何が変わるのかもわかる方がいらっしゃいましたらご教授いただきたいです。

Gentarou_Nakamura さん

お使いの baserCMS バージョンが 4.0.8 とのことなので、テーマのテンプレートファイルで <?php $this->BcBaser->crumbsList(['onSchema' => true]); ?> と記述すれば構造化属性が出力されるはずなんですよね…

このファイルの後半にある

<?php if(empty($onSchema)): ?>
	<?php 
	if ($this->BcBaser->isHome()) {
		echo $home;
	} else {
		$this->BcBaser->crumbs($separator, $home);	
	}
	?>
<?php else: ?>
<ul itemscope itemtype="http://schema.org/BreadcrumbList">
	<?php if ($this->BcBaser->isHome()): ?>
	<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
		<span itemprop="name"><?php echo $home ?></span>
		<meta itemprop="position" content="1" />
	</li>
	<?php else: ?>
		<?php $this->BcBaser->crumbs($separator, $home, true) ?>
	<?php endif ?>
</ul>
<?php endif ?>

という記述が構造化属性の出力に関係する箇所です。

ただ、テーマ内の Elements ディレクトリに crumbs.php ファイルがあるとそちらのコードが優先されるので、当該ファイルの有無や構造化属性出力にかかる記述の有無を確認されてはいかがでしょうか?

ありがとうございます。
テーマ内の Elements ディレクトリのcrumbs.phpは

<?php if(empty($onSchema)): ?>

以降の記述のないものが入っていました。
コアファイルの記述と差し替えたらschemaが表示されました。
ありがとうございました。大変助かりました。
:laughing:

1 Likes