php – WordPress – 无法从自定义帖子类型的元数据中获取价值

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – WordPress – 无法从自定义帖子类型的元数据中获取价值脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我无法从自定义帖子类型的元数据中获取值.

以下是我在自定义帖子类型中注册元数据的方法

register_post_tyPE( 'poslovi-newsletter',array(
         'labels' => array(
         'name' => __( 'Poslovi newsletter' ),'hierArchical' => false,'singular_name' => __( 'Posalji newsletter' )
        ),'public' => true,'exclude_From_search' => true,'menu_icon' => 'dashicons-email','register_@L_304_5@_Box_cb' => 'add_bez_oznaka_text_MetaBox'
        )
);

这就是我如何处理在仪表板中自定义帖子类型上显示元数据,保存数据等…

function add_bez_oznaka_text_MetaBox() {
    add_Meta_Box('poslovi_newsletter_Meta','Tekst mejla za korisnike bez oznaka','bez_oznaka_textarea','poslovi-newsletter','normal','default');   
}
add_action( 'add_Meta_Boxes','add_bez_oznaka_text_MetaBox' );

function bez_oznaka_textarea( $post ) {
    wp_nonce_field( basename( __FILE__ ),'poslovi_newsletter_nonce' );
    $poslovi_newsletter_Stored_Meta = get_post_meta( $post->ID );
    ?>
    <p>
        <label for="Meta-textarea" class="poslovi_newsletter-row-tITle"><?PHP _e( 'Tekst mejla','poslovi_newsletter-textdomain' )?></label> 
        <textarea name="Meta-textarea" id="Meta-textarea" style="width: 100%; min-height: 200px;"><?PHP if ( isset ( $poslovi_newsletter_stored_Meta['Meta-textarea'] ) ) echo $poslovi_newsletter_stored_Meta['Meta-textarea'][0]; ?></textarea>
    </p>
    <?PHP
}

function poslovi_newsletter_Meta_save( $post_id ) {

    // Checks save status
    $is_autosave = wp_is_post_autosave( $post_id );
    $is_revision = wp_is_post_revision( $post_id );
    $is_valid_nonce = ( isset( $_POST[ 'poslovi_newsletter_nonce' ] ) && wp_verify_nonce( $_POST[ 'poslovi_newsletter_nonce' ],basename( __FILE__ ) ) ) ? 'true' : 'false';

    // Exits script depending on save status
    if ( $is_autosave || $is_revision || !$is_valid_nonce ) {
        return;
    }

    // Checks for input and saves if needed
    if( isset( $_POST[ 'Meta-textarea' ] ) ) {
        update_post_Meta( $post_id,'Meta-textarea',$_POST[ 'Meta-textarea' ] );
    }

}
add_action( 'save_post','poslovi_newsletter_Meta_save' );

现在,一切正常.当我添加新帖子并输入数据时,它会保存包含该数据的帖子.当我发布var_dump帖子时,我会看到所有内容,内容,标题,日期等,但我没有看到任何元数据.

此外,当我这样做时(假设我想从id为37422的帖子中获取元数据)

$Meta_value = get_post_meta( 37422,true );
VAR_dump($Meta_value);

我得到的是:string(0)“”

我可能做错了部分负责保存部分的代码,但无法弄清楚究竟是什么.

解决方法

好吧,所以我用你的自定义帖子类型摆弄了一下,它对我有用.

我创建了一个页面模板来输出poslovi-newsletter帖子类型的所有帖子. PHP部分看起来像这样:

<?PHP
$args = array(
    'post_type' => 'poslovi-newsletter','posts_per_page'=>-1,);
$posts = new WP_Query( $args );
$out = '';
if ($posts->have_posts()){
    while ($posts->have_posts()){
        $posts->the_post();

        $Meta = get_post_meta($post->ID);

        $out.= '<div class="test">'.$Meta['Meta-textarea'][0].'</div>';
    }
}
else{
    echo '<p>' . __('No Posts Found.') . '</p>';
}
?>

<?PHP echo $out;?>

因此,您的post元值位于一个数组中,其中包含名称Meta-textarea的键,并且在该键中,该值是一个具有所需值的单个键的数组

Array (
    [Meta-textarea] => Array ( 
                        [0] => Tessst 
                    )
)

我输入’Tessst’来检查它是否正常工作.

希望这可以帮助 :)

脚本宝典总结

以上是脚本宝典为你收集整理的php – WordPress – 无法从自定义帖子类型的元数据中获取价值全部内容,希望文章能够帮你解决php – WordPress – 无法从自定义帖子类型的元数据中获取价值所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。