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.