こんな事をポストしたのですが、ChatGPT先生に相談して、それっぽいものが出来たので、まずは、ショートコード経由でPHPファイルをを呼び出し方をざっくり解説しようかと思います。(自分用のメモが主な目的なので、参考程度にお願いします。)
PHPコードを呼び出したい場所にショートコードブロックを設定

[myphp file = ‘post-list’]
functions.phpにコードを記述
//ショートコード経由でPHPコードを呼び出す
function my_php_include($params)
{
$file = sanitize_file_name($params['file'] ?? 'default');
$file_path = get_stylesheet_directory() . "/php-code/{$file}.php";
if (!file_exists($file_path)) return '';
ob_start();
include $file_path;
return ob_get_clean();
}
add_shortcode('myphp', 'my_php_include');
これで、テーマファイル直下のphp-codeのフォルダの中のpost-list.php中のコードをショートコードブロックの場所に呼び出す事になります。
ショートコードブロックの記述で、呼び出したいファイル名post-listを引数で渡して、functions.phpでそのファイルが可能されているフォルダphp-codeを指定している感じでしょうか。

呼び出されるPHPファイルにコードを記述
<!-- ループ外で記事のタイトルを取得 -->
<?php single_post_title();
呼び出し元のファイルのコードを記述します。上記の場合、記事のタイトルを表示するコードをショートコード経由で呼び出す事ができます。
問題点
この方法、私も良く使っていますし、メジャーな手法だと思いますが、ブロックエディタからPHPファイルを変更できない(コンテンツがブラックボックス化する)問題があるのかなと。カスタムブロックとか作れれば解決するのかな。