プログラムで作成された記事:システム-ページ分割の問題

Dec 11 2020

コンソールインポートを介して1000のjoomla記事を作成しました(他のソースからの移行でした)。すべてが正常に機能しています(タグ付け、イントロテキスト、カスタムフィールドなど)が、システムのページ区切りに問題があります。

システムのページ分割とイントロ<hr>テキストは同じように機能します。テキストに次のような特別な要素を挿入します。

<!-- introtext -->
<hr id="system-readmore" />
<!-- system pagebreak -->
<hr title="2" alt="2" class="system-pagebreak" />

「system-readmore」は正常に機能していますが、「system-pagebreak」は正しく機能していません。「システムページ分割」は、実際の<hr>要素としてフロントエンドに出力されます。バックエンドに移動した場合は、記事を開いて保存するだけです。その後は機能します。したがって、記事のコンソールインポート後、<hr>は正しく挿入されますが、記事を機能させるには、手動で記事をバックエンドに保存する必要があります。

識別子か何かが足りないに違いありません。「システム-続きを読む」のようなものだと思いましたが、そうではありません。

誰かが私が欠けているものを知っていますか、私はjoomlaのデバッガーをチェックしましたが、ヒントを見つけることができません。

回答

3 ThomasBaier Dec 11 2020 at 19:12

解決策は静かでシンプルでした。これは自己完結型のHTML要素の問題でした。

同じ問題が発生した場合は、プログラムで挿入された<hr>システムページブレークに終了スラッシュがあることを確認してください。

<-- CORRECT -->
<hr title="2" alt="2" class="system-pagebreak" />

<-- WILL NOT WORK -->
<hr title="2" alt="2" class="system-pagebreak">

HTML5では通常、これは問題ではありませんが、joomlaコアページ分割プラグインは次の正規表現を使用して、システムページ分割であるかどうかを判断します。

// plugins/content/pagebreak/pagebreak.php:67

$regex = '#<hr(.*)class="system-pagebreak"(.*)\/>#iU';