2

こんにちは、私は wordpress プラグイン開発に非常に慣れていません。jquery ダイアログを表示するためのサイドメニューを追加するプラグインを作成しました。

今、フロントエンド ユーザーにページ内のフォームを表示しようとしていますが、開始方法が非常に混乱しています。

フロントエンド ユーザーのサイド メニューにリンクを表示したい。ユーザーがクリックすると、プラグインでカスタム ページを開きたい。(URL をクリックすると、demo.com/my_page.php のようになります)。私はそれをグーグルで検索しましたが、いくつかがテンプレートを提案していることを理解するものは見つかりませんでした(私はまだそれらについて知りません)。

これを行うための最良の方法を教えてください。

4

3 に答える 3

3

PHP バージョン 5+

以下で説明する最初の 2 つの方法で最初に行うことは、Wordpress でページを作成することです。「ページ」->「新規作成」を選択して、「my-page」または「My Page」というタイトルで作成します。スラッグは、まだ存在しない限り、どちらの場合も「my-page」にする必要があります。「my_page」は使用しないでください。

プラグイン内でフロントエンド ページを管理するには、いくつかの方法があります。

私が最も気に入っているのは、次の例に示すように、ページをプラグインのディレクトリに置き、それをテーマのディレクトリにコピーすることです。

通常どおりフォームを作成し、プラグインのディレクトリに保存します。

このファイルは、スタイルシート ディレクトリ内のページのテンプレートになります。私が知る限り、WPがページをロードするには、ページがこのディレクトリに配置されている必要があります。

例:

// Make sure you define in your plugin's main script the location of the plugin, with a code like this:

// Holds the absolute path to MyPlugin directory, without slashes.
if ( !defined( 'MyPlugin_DIR' ) ) define( 'MyPlugin_DIR', __DIR__ );

    function CopyFile() {

      $TemplateFileSourceURL = MyPlugin_DIR . '/my-page.php'; // Address to your file in the plugin directory
      $TemplateFileTargetURL = get_stylesheet_directory() . '/page-my-page.php'; // Note the "page-" prefix, it is necessary for WP to select this file instead of the general "page.php". The name after the prefix must match the slug of the page created in WP. 

      if ( !file_exists( $TemplateFileSourceURL ) ) {
        return FALSE;
      }

      $GetTemplate = file_get_contents( $TemplateFileSourceURL );
      if ( !$GetTemplate ) {
        return FALSE;
      }

      $WriteTemplate = file_put_contents( $TemplateFileTargetURL, $GetTemplate );
      if ( !$WriteTemplate ) {
        return FALSE;
      }
      return TRUE;
    }

もう 1 つの方法は、ページを作成し、それをテーマのディレクトリにテンプレート ファイルまたは単なるページとして保存することです。

テンプレートにするには、最初の行に次のコメントを追加する必要があります。

/*
Template Name: MyPage
*/

MyPage は任意の名前にすることができます。次に、WP のページ エディターに移動し、右側のバーで MyPage テンプレートを選択します。エディターのページをリロードするとそこにあるはずです。

テーマのディレクトリにあるファイルの名前に接頭辞「page-」を追加すると、テンプレートにする必要はありません。つまり、page-my-page.php です。

最後の方法は、ファイルを作成し、必要な場所に保存して、最初の行で次のようなコードを使用して WP をロードすることです。

注: このメソッドを使用する場合、WP でページを作成する必要はありません。ユーザーの変数と関数を再宣言する必要があるかもしれませんが、何もしません。

require_once ('WPBlogUrl/wp-load.php'); // Make sure WPBlogUrl points to the blog's url.

どの方法が最適ですか? 要件によって異なりますが、テーマのディレクトリにフロントエンド ページを手動で追加する必要がない場合は、最初のオプションが最適だと思います。

プラグインを削除するときは、アンインストール スクリプト内のファイルを削除することを忘れないでください。

お役に立てれば。

フェリペ アラメダ A.

于 2012-11-09T08:12:01.630 に答える
1

私にとってうまくいったもう1つの簡単な解決策は、ページをロードすることです

add_action('wp','my_custom_plugin_function');

http://blog.frontendfactory.com/how-to-create-front-end-page-from-your-wordpress-plugin/

于 2016-02-09T21:41:31.903 に答える
0

新しいページ テンプレートと新しいページを作成し、テンプレートをそのページに割り当てることができます。

次に、カスタム関数をページ テンプレートに追加できます。このようにして、新しい URL を取得し、WordPress コンテキストでカスタム コードを実行できます。

于 2012-11-09T06:48:14.193 に答える