プラグインElementorのelementor/document/urls/wp_previewフィルタの使用方法・解説

概要

elementor/document/urls/wp_preview フィルタは、ElementorのプレビューURLをカスタマイズする際に使用されるフックです。このフィルタを利用することで、プレビューリンクをより適切な形に変更したり、URLに特別なパラメータを追加したりできます。具体的には、以下のような機能を実装する際に役立ちます。

  1. 特定のユーザー向けにプレビューURLを変更
  2. プレビューのセキュリティを強化するためのトークンを追加
  3. プレビュー中のコンテンツのリダイレクト
  4. 意図しないコンテンツのプレビューを防ぐ
  5. プレビューを特定のトラッキング用URLにリダイレクト
  6. マルチサイト環境でのプレビュー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は含まれておりません。使用したサンプルコードは独自に作成されたものです。

この関数について質問する


上の計算式の答えを入力してください