Wordpress个人资料文件/页面

时间:2013-09-20 02:17:04

标签: wordpress

我想在Wordpress主题中创建一个文件,我将添加自己的代码,编辑个人资料,显示个人资料信息,以及可能以编程方式插入帖子/元数据的功能。

所以需要www.mysite.com/profile.php或www.mysite.com/profile /

我不想使用Buddy Press或任何其他插件。

我知道模板系统是如何工作的,我不想要一个页面模板。

它可能是一个类,稍后,我不想更改.htaccess文件,如果我必须我会欣赏过滤器功能如何从functions.php

基本上只是一个简单的.php文件,我可以链接到,位于主题根目录。

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

并编写我想要的任何代码。

任何不太“hacky”的创意解决方案都将受到赞赏。

在我决定提问之前,花了大约2天的时间用谷歌搜索我的头。

非常感谢。

1 个答案:

答案 0 :(得分:1)

好的,我设法做到了这一点,花了我2​​天的时间来搞清楚。以下是我设法做到的方法:

  1. 制作插件文件夹。
  2. 在该插件文件夹中制作1x php文件。所以index.php
  3. 好的,首先我们需要注册插件,我在你的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. 是Title
    2. 蛞蝓
    3. 发布类型
    4. 简码。
    5. 模板
    6. 对于短代码模板,您需要使用完整的页面输出制作短代码 并将其作为参数添加到此函数中,因此对于注册页面,它将是一个包含注册表单等的短代码。

      例如:

            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' );
      

      好的,这只会在插件加载时执行一次,它会创建3个页面,分别是个人资料,注册和个人资料编辑。

      就是这样,你有你的前端用户配置文件空白页,你可以用短代码编写页面输出,创建更多页面,放置你喜欢的任何形式或元素,并创建合适的配置文件(没有任何东西你不需要像插件一样。)

      希望这会有所帮助,我很难理解这一点。干杯!