2

私は自分のコードを追加し、プロファイルを編集し、プロファイル情報を表示し、おそらく投稿/メタデータをプログラムで挿入する機能を備えた、Wordpress テーマでファイルを作成したいと考えています。

したがって、www.mysite.com/profile.php または www.mysite.com/profile/ である必要があります。

Buddy Press やその他のプラグインは使用したくありません。

テンプレート システムの仕組みは知っていますが、ページ テンプレートは必要ありません。

それはおそらくクラスになります。後で、.htaccessファイルを変更したくありません。必要に応じて、functions.phpからこれを行う方法をフィルター関数に感謝します

基本的に、テーマルートにある、リンクできる単純な .php ファイルです。

include('../../../wp-load.php');

そして、私がしたいコードを書きます。

あまりにも「ハック」ではない創造的なソリューションをいただければ幸いです。

質問をする前に、これについて頭を悩ませてグーグルで約2日間過ごしました。

どうもありがとうございました。

4

1 に答える 1

1

わかりました、私はこれを行うことができました。それを理解するのに2日かかりました。これが私がそれをどうやってやったかです:

  1. プラグインフォルダーを作成します。
  2. そのプラグイン フォルダに 1x php ファイルを作成します。だからindex.php

わかりましたので、最初にプラグインを登録する必要があります。このコードを index.php に貼り付けます。

        function activate_profile_plugin() {

         add_option( 'Activated_Plugin', 'Plugin-Slug' );

         /* activation code here */
          }
        register_activation_hook( __FILE__, 'activate_profile_plugin' );

次に、プラグインを登録するときの機能が必要です。一度だけプロファイル ページを登録します。

       function create_profile_page( $title, $slug, $post_type, $shortcode, $template = null ) {
    //Check if the page with this name exists.
     if(!get_page_by_title($title)) {
         // if not :
          $page_id = -1;
        $page_id = wp_insert_post(
            array(
                'comment_status'    =>   'open',
                'ping_status'       =>   'open',
                'post_content' => $shortcode,
                'post_author'       =>   1,   // Administrator is creating the page
                'post_title'        =>   $title,
                'post_name'     =>   strtolower( $slug ),
                'post_status'       =>   'publish',
                'post_type'     =>   strtolower( $post_type )
            )
        );
        // If a template is specified in the function arguments, let's apply it
        if( null != $template ) {
            update_post_meta( get_the_ID(), '_wp_page_template', $template );
        } // end if
    return $page_id;
       }     
 } 

わかりましたので、プログラムでページを登録する関数を作成しました。5 つのパラメーターがあります。

  1. タイトルです
  2. ナメクジ
  3. 投稿タイプ
  4. ショートコード。
  5. テンプレート

ショートコード テンプレートの場合、完全なページ出力でショートコードを作成し、それをこの関数のパラメーターとして追加する必要があります。したがって、登録ページの場合、登録フォームなどを含むショートコードになります。

例えば ​​:

      function registration_shortcode(){
      echo 'Wellcome to Registration page';
      }
      add_shortcode('registration_output', 'registration_shortcode');

次に、プラグインがロードされたときに一度だけ呼び出す必要があります。

だから私たちはこれを行います:

      function load_plugin() {
      if ( is_admin() && get_option( 'Activated_Plugin' ) == 'Plugin-Slug' ) {

       delete_option( 'Activated_Plugin' );

        /* do stuff once right after activation */
        // example: add_action( 'init', 'my_init_function' );
         create_profile_page('Registration', 'registration', 'page', '[registration_output]');
        create_profile_page('Profile', 'profile', 'page', '[profile_shortcode]');
        create_profile_page('Profil Edit', 'profile-edit', 'page', '[edit_shortcode]');
        }
        }
        add_action( 'admin_init', 'load_plugin' );

これは、プラグインのロード時に 1 回だけ実行され、プロファイル、登録、プロファイル編集の 3 つのページが作成されます。

それだけです。フロントエンドのユーザー プロファイルの空白ページがあり、ショートコードでページ出力を記述したり、ページを追加したり、好きなフォームや要素を配置したり、まともなプロファイルを作成したりできます (必要なものはありません)。プラグインのように必要ではありません。)

これが役に立てば幸いです。これを理解するのは苦痛でした。乾杯!

于 2013-09-30T11:18:31.787 に答える