タイトルのままなのですが、WP2StaticにてクロールするURLを追加/削除するための
フィルターがあるので、そちらの紹介です。
公式ページには書いておらず、GitHubにあるドキュメントを読まないとわからないという…。
ちょっと調べるのも面倒だったので、こちらに書いておこうと思います。
wp2static_modify_initial_crawl_list
WP2StaticはクロールするURLが自動で生成されるのですが、クロールするURLを変更できるwp2static_modify_initial_crawl_listというフィルターフックが用意されています。
apply_filters(
'wp2static_modify_initial_crawl_list',
$url_queue
);
$url_queue にクロール対象になるURLが入ります。
最終的にこの変数をクロールさせたいURLのみにします。
サンプル
追加
追加したいURLがある時は$url_queue
に追加して返します。
この場合は$additional_urls
で指定しているURLがクロール先として追加されます。
以下は公式にのっているものをちょちょっと書き直したものです。
function add_additional_urls( $url_queue )
{
$additional_urls = [
'/custom_link_1/',
'/custom_link_2/',
];
$url_queue = array_merge(
$url_queue,
$additional_urls
);
return $url_queue;
}
add_filter('wp2static_modify_initial_crawl_list', 'add_additional_urls');
削除
逆にクロールしてほしくないURLは$url_queue
から削除します。
(いろいろやり方はあると思いますが、例を…。)
例:クロール対象のURLが以下で、entry_23をクロール対象外とする場合
/blog/entry_22/
/blog/entry_23/
/blog/entry_24/
/blog/entry_39/
function remove_extra_urls($url_queue)
{
$idx = array_search('/blog/entry_23/',$url_queue);
if($idx !== false)
{
array_splice($url_queue,$idx,1);
}
return $url_queue;
}
add_filter('wp2static_modify_initial_crawl_list', 'remove_extra_urls');
※書き方はいろいろあると思います…。最終的にクロールしてほしくないURLをぬいたものがreturnできていればよいです。
クロール対象は以下のURLになります。
/blog/entry_22/
/blog/entry_24/
/blog/entry_39/
注意事項など
add_filterで関数をひっかけていくのですが、追加/削除の関数を別にしている場合は
関数の実行順序管理をしっかりとしてないとちょっと泣きます。
WP2Staticの自動検出だと日付アーカイブはクロールされないので自分で作成した関数で追加し、テーマフォルダの中にあるjsなどを拾いに行ってしまうので、削除したり。
自動だとちょっと上手くいかない…というときはどうぞ。