概要
elementor/document/urls/wp_preview
フィルタは、ElementorのプレビューURLをカスタマイズする際に使用されるフックです。このフィルタを利用することで、プレビューリンクをより適切な形に変更したり、URLに特別なパラメータを追加したりできます。具体的には、以下のような機能を実装する際に役立ちます。
- 特定のユーザー向けにプレビューURLを変更
- プレビューのセキュリティを強化するためのトークンを追加
- プレビュー中のコンテンツのリダイレクト
- 意図しないコンテンツのプレビューを防ぐ
- プレビューを特定のトラッキング用URLにリダイレクト
- マルチサイト環境でのプレビューURLの調整
構文
add_filter('elementor/document/urls/wp_preview', 'custom_wp_preview_url', 10, 2);
パラメータ
$urls
: プレビューURLの配列$document
: Elementorのドキュメントオブジェクト
戻り値
- カスタマイズされたプレビューURLの配列
使用可能なプラグインバージョン
- Elementor: バージョン 2.0 以上
使用可能なWordPressバージョン
- WordPress 4.0 以上
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプルコード 1: URLにトークンを追加
このサンプルは、プレビューURLにセキュリティトークンを追加します。
add_filter('elementor/document/urls/wp_preview', function($urls, $document) {
$token = 'your_security_token'; // トークンを生成するロジックを追加
$urls['preview'] = add_query_arg('token', $token, $urls['preview']);
return $urls;
});
サンプルコード 2: 特定のユーザーの条件付きプレビュー
このサンプルは、特定のユーザー(例:管理者)のみがアクセスできるプレビューURLに変更します。
add_filter('elementor/document/urls/wp_preview', function($urls, $document) {
if (!current_user_can('administrator')) {
$urls['preview'] = ''; // プレヴューを無効にする
}
return $urls;
});
サンプルコード 3: マルチサイト用のプレビューURL
このサンプルは、マルチサイト環境においてプレビューURLを適切なサイトのものに調整します。
add_filter('elementor/document/urls/wp_preview', function($urls, $document) {
if (is_multisite()) {
$site_url = get_site_url();
$urls['preview'] = str_replace(home_url(), $site_url, $urls['preview']);
}
return $urls;
});
サンプルコード 4: コンテンツリダイレクトの無効化
このサンプルは、特定の条件下でプレビューURLを無効にします。
add_filter('elementor/document/urls/wp_preview', function($urls, $document) {
if ($document->get_settings('disable_preview')) {
return [];
}
return $urls;
});
サンプルコード 5: カスタムクエリ引数の追加
このサンプルは、プレビューURLにカスタムクエリ引数を追加します。
add_filter('elementor/document/urls/wp_preview', function($urls, $document) {
$urls['preview'] = add_query_arg('custom_param', 'value', $urls['preview']);
return $urls;
});
引用元のページは著作権フリーですが、具体的なURLは含まれておりません。使用したサンプルコードは独自に作成されたものです。