döngü dışında yazar kimliği al


17

Post post yazar e-posta (veya diğer kullanıcı meta alanları) ile düzenleme paneli meta kutusuna yerleştirmek gerekiyor. Bu nedenle, yönetici bu yayını incelediğinde düzenlenebilir.

$meta_id = get_the_author_meta( 'user_email', $user_id );

$meta_box = array(
    'id' => 'my-meta-box',
    'title' => 'DANE FIRMY',
    'page' => 'post',
    'context' => 'normal',
    'priority' => 'high',
    'fields' => array(
        array(
            'name' => 'E-mail box',
            'id' => 'mail',
            'type' => 'text',
            'std' => $meta_id
        )
    )
);

Bu kod, $ user_id bir tamsayı olduğunda çalışır (manuel olarak örneğin 4 için koyduğumda) ancak dinamik olarak geçerli yazar kimliğini ( $user_id) almak istiyorum .

get_the_author_meta('user_mail')belirtmeden çalışmalıdır $user_id(kodx diyor :) :) ama kod functions.phpdöngü içinde ve dışında yani çalışmaz. Wordpress ve PHP ile başlıyorum, bundan sonra ne yapacağımı bilmiyorum.

Ayrıca şunu denedi:

global $post;
$user_id=$post->post_author;

Yanıtlar:



9

Aşağıdakileri kullanabilirsiniz:

/**
 * Gets the author of the specified post. Can also be used inside the loop
 * to get the ID of the author of the current post, by not passing a post ID.
 * Outside the loop you must pass a post ID.
 *
 * @param int $post_id ID of post
 * @return int ID of post author
*/
function wpse119881_get_author( $post_id = 0 ){
     $post = get_post( $post_id );
     return $post->post_author;
}

Hmm benim için çalışmıyor - i fonksiyonu filtrelerden birine bağlı olması gerektiğini düşünüyorum ama hangisi bilmiyorum.
— th3rion

Benim için çalışıyor ... (geçerli) bir posta kimliği ilettiğinizden emin misiniz?
— Stephen Harris

Ama bu meta alanı her yazı için düzenleme ekranında görüntülemek istiyorum (sadece bir tane için değil) ve yazı yazarı farklı olabilir, böylece $ post_id düzenleme ekranına göre dinamik olarak yüklenmelidir.
— th3rion

$post_idDinamik olarak ayarlayın . Bir meta kutunun içinde kullanılıyorsa, metabox geri aramanız $postnesneye iletilir . Böylece kullanabilirsiniz $post->ID(Muhtemelen $post->post_authorbu meta için kullanabilirsiniz .
— Stephen Harris

1
add_action( 'edit_form_after_title', 'myprefix_edit_form_after_title' );
function myprefix_edit_form_after_title() {
    global $post;
    $author_id=$post->post_author;
    $authord = get_the_author_meta( 'user_email', $author_id);
    echo $authord;
}

Bu işlev ile yazı düzenleme ekranında yazı yazarı e-postasını görüntüleyebildim. Özel meta alanı ile nasıl çalışacağını hala bilmiyorum ama şimdi daha yakın olduğumu düşünüyorum.


Bu aynı zamanda kendi sorunuz. Açıklığa kavuşturmak için düzenleyebilirsiniz.
— funwhilelost
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.