使用WordPress登录名的自定义PHP页面

时间:2015-01-05 作者:Daniel D.

我创建了多个链接到WordPress数据库的PHP页面,在那里我创建了一个特定的表来从发布的表单中获取信息。我希望人们使用他们的WordPress凭据登录以访问我显示此表内容的页面。

我试过这个:

//wp-admin

//Setup location of WordPress
$absolute_path = $_SERVER[\'DOCUMENT_ROOT\'];
$path_to_file = explode( \'wp-content\', $absolute_path );
$path_to_wp = $path_to_file[0];

//Access WordPress
require_once( $path_to_wp.\'/wp-load.php\' );
但这行不通。

1 个回复
SO网友:Михаил Семёнов

为什么不这样做:

1) 创建页面模板

2) 检查用户是否已登录

3) if is使用$wpdb global var访问数据库

4) 用表单完成你的工作

它可能看起来像:


/**
 * Template Name: User Form 1
 **/
if( ! is_user_logged_in() ){
    wp_redirect( home_url() );
    exit;
}

get_header();

    global $wpdb;
    // http://codex.wordpress.org/Class_Reference/wpdb#SELECT_Generic_Results
    $forms = $wpdb->get_results( 
        "
        SELECT * 
        FROM my_table_name
        "
    );

    foreach ( $forms as $form ) {
        // do something
    }


get_footer();
或者,如果希望它没有模板结构,请使用它get_header() 或创建header-forms.php 和使用get_header( \'forms\' )

但是,如果你仍然想在主题和模板之外做这件事,那就等着有人正确回答吧。

结束

相关推荐

Wp-admin不会重定向到wp-login.php

由于某种原因,我的插件导致/wp-admin/ 不重定向到wp-login.php 这是应该的。我将其缩小到以下两行代码:foreach( glob($this->path[\'modules_dir\'] . \'*/_*.php\') as $class_path ) require_once( $class_path ); 我不确定是不是glob() 功能或什么的,但在本地这不是问题,但一旦在托管上直播,这就是问题。主机正在使用PHP Version 5.4.20 它