Obține datele utilizatorului curent dintr-o pagină PHP externă
Am o pagină PHP la același nivel cu template-ul/theme-ul în WordPress. Trebuie să pot obține detaliile utilizatorului autentificat curent din această pagină.
Am încercat acest cod:
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' );
global $current_user;
$current_user = wp_get_current_user();
var_dump( $current_user );
Dar returnează nimic. 0
ca user_id
și nimic în celelalte câmpuri. Lipsesc ceva?
ACTUALIZARE:
Acesta este rezultatul var_dump
:
object Object]1object(WP_User)#79 (10) {
["data"] => NULL
["ID"] => int(0)
["id"] => int(0)
["caps"] => array(0) {}
["cap_key"] => NULL
["roles"] => array(0) {}
["allcaps"] => array(0) {}
["first_name"] => string(0) ""
["last_name"] => string(0) ""
["filter"] => NULL
}

Poți...
Încarcă fișierul în fișierul unde vrei să afișezi mesajul 'hey username':
<?php include(TEMPLATEPATH .'/check-user-hello.php'); ?>
.
Apoi în acel fișier "check-user-hello.php"
Trebuie să pui acest cod
<?php
if ( is_user_logged_in() ) {
global $current_user;
get_currentuserinfo();
echo 'Hey ' . $current_user->display_name;
} else {
echo '<a href="'. get_bloginfo('url') .'/wp-admin" class="loginlinktop">Login</a>';
}
?>
.
Sper că te ajută :)
Pentru a învăța mai multe despre acest subiect:
.
REZOLVARE 3
Din câte știu eu, trebuie să incluzi wp-blog-header.php pentru a rula funcțiile WordPress în afara buclei.. așa că.. încearcă asta.
<?php
require('../../../wp-blog-header.php');
if ( is_user_logged_in() ) {
global $current_user;
get_currentuserinfo();
echo 'Hey ' . $current_user->display_name;
} else {
echo '<a href="'. get_bloginfo('url') .'/wp-admin" class="loginlinktop">Login</a>';
}
?>
.
Te rog să NOTEZI:
Calea "wp header blog" pe care am creat-o în acest cod presupune că fișierul tău este în directorul template.. dacă nu este, ar trebui să schimbi calea require astfel încât să încarce fișierul corect.

OK, trebuie să lipsească ceva? Primesc această eroare: <b>Fatal error</b>: Call to undefined function is_user_logged_in() in <b>/home/mydomain/public_html/wp-content/themes/mytheme/uploadify.php</b> on line <b>25</b><br />

Ce este pagina aceea uploadify.php? Un șablon de pagină? Poți să copiezi codul în Pastebin și să-l trimiți aici?

<?php
//$targetFolder = '/uploads/'; // Relative to the root if (!empty($_FILES)) { $tempFile = $_FILES['Filedata']['tmp_name']; $targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder; ////$targetFile = rtrim($targetPath,'/') . $_FILES['Filedata']['name']; $targetFile = $targetPath . $_FILES['Filedata']['name'];
$fileTypes = array('jpg','jpeg','gif','png'); // Extensii de fișiere permise $fileParts = pathinfo($_FILES['Filedata']['name']);
if (in_array($fileParts['extension'],$fileTypes)) { move_uploaded_file($tempFile,$targetFile); echo '1'; } else { echo 'Tip de fișier invalid.'; } } ?>

Nu este un șablon WordPress. Este o pagină PHP independentă. Am nevoie doar să știu numele de utilizator curent din WordPress, astfel încât să-l pot adăuga la sfârșitul căii $targetFolder.

Cred că wp-load.php
este suficient, nu este nevoie de header, nu cred, care include și template-loader.php
.

Salutare, începători tardivi (ca și mine). Pe măsură ce m-am luptat cu această problemă, și răspunsurile care sugerează includerea wp-load.php sau wp-blog-header.php ar trebui să funcționeze, dacă au funcționat vreodată, nu mai funcționează cu versiunile mai recente. Soluția pare să fie încărcarea wp-load.php ȘI APOI apelarea funcției wp_head(). Așadar, fără alte introduceri,
require('../../../../../wp-load.php'); //Evident, construcția mea brută a căii către fișierul wp-load.php.
wp_head();
$user = get_user_by('ID',57); //obține obiectul utilizator după ID. Schimbați '57' cu un ID valid în instalarea dvs.
echo "<pre>";
print_r($user);
echo "</pre>";
...și gata, problema este rezolvată.
Rezultatul:
WP_User Object
(
[data] => stdClass Object
(
[ID] => 57
[user_login] => unclebob
[user_pass] => $P$BkVVl8RhOc/niffq1QaNyaMeNwvpoO0
[user_nicename] => unclebob
[user_email] => uncle.bob@unclebob.online
[user_url] =>
[user_registered] => 2019-11-29 08:38:45
[user_activation_key] => 1575016726:$P$BE/a1mnbiD4unzrYG5O0L1T1pJZ5GG.
[user_status] => 0
[display_name] => Uncle Bob, PhD
)
[ID] => 57
[caps] => Array
(
[admin] => 1
)
[cap_key] => wp_capabilities
[roles] => Array
(
[0] => admin
)
[allcaps] => Array
(
[0] => read
[admin] => 1
)
[filter] =>
[site_id:WP_User:private] => 1
)
