0

私は最初のワードプレス プラグインの構築に取り組んでおり、何かに行き詰まっているようです。

サイトの残りの部分と同じスタイルを使用して新しいページを作成するには、プラグインを有効にする必要があります。カスタマイズ可能なパス (/これはパスです) をリンクに追加します。

私はこれを行う方法を調査し、空白の .php ファイルが表示されるようにしました...次のコードを使用します。

//Template fallback
add_action("template_redirect", 'my_theme_redirect');

function my_theme_redirect() {
    global $wpdb;
    $plugindir = dirname( __FILE__ );

    //A Simple Page
    if ( $wp->query_vars[ "pagename" ] == 'event-photo-uploadr' ) {
        $templatefilename = 'custom-uplaodr-page.php';
        if ( file_exists( TEMPLATEPATH . '/' . $templatefilename )) {
            $return_template = TEMPLATEPATH . '/' . $templatefilename;
        } else {
            $return_template = $plugindir . '/themefiles/' . $templatefilename;
        }
        do_theme_redirect($return_template);
    }
}

function do_theme_redirect($url) {
    global $post, $wp_query;
    if (have_posts()) {
        include($url);
        die();
    } else {
        $wp_query->is_404 = true;
    }
}

私が今知る必要があるのは、この .php ファイルをプラグイン フォルダにあるファイルに置き換えるにはどうすればよいですか? また、このページはリンクを持っている人だけの非表示のページにする必要があるため、このページのカスタム リンクを作成する方法も考えています。

すべてプラグインを介して実行する必要があり、プラグインが非アクティブ化されると削除されます。

また、私のコードのベスト プラクティスと改善に関するヒントを聞きたいです。ありがとう!

4

1 に答える 1

0

add_action を使用する

add_action('template_redirect', '関数名');

次に、ロードしてrequireを使用する関数を作成します。これにより、現在のテーマが上書きされます。次に、関数にフィルターを追加する必要があります。

add_action('template_redirect', 'loadTheme');

function laodTheme() {
if (is_page('page')){
global $post, $wp_query;
    if (have_posts()) {
        require($url);
        die();
    } else {
        $wp_query->is_404 = true;
    }
}  
}

ページ「ページ」に移動したときにテーマをリダイレクトする必要があるため、必要に応じて条件を変更できます。これはあなたが求めていたものだと思います。

カスタム リンクに関しては、これらはカスタム テーマ ファイル内で設定できます。

于 2014-03-27T14:47:01.910 に答える