簡體   English   中英

WordPress get_post_meta在功能中不起作用

[英]WordPress get_post_meta Not Working in a Function

我在自定義帖子類型的寬度上有一個meta框。 我試圖使用get_post_meta將一些CSS放在頭部。 一切正常,但元值沒有傳遞。 這是我的功能:

function mo_carousel_css(){
    global $post;
    $width = get_post_meta( $post->ID, 'mo_carousel_width', true );
    ?>
    <style type="text/css">
        .jcarousel-container-horizontal{
        width:<?php echo $width; ?>px;
        }
    </style>
    <?php
    }

我已經檢查了數據庫,並且元鍵/值分別正確地存儲為mo_carousel_width500 我以為global $post; 會解決,但沒有運氣。

通過訪問$object ,可以在后端的metabox中很好地檢索該值,但這似乎也不起作用。 這是用於創建值的表單的代碼:

    /* Display the post meta box. */
function mo_carousel_meta_box( $object, $box ) { ?>

    <?php wp_nonce_field( basename( __FILE__ ), 'mo_carousel_nonce' ); ?>
    <p>
        <span>Carousel Size</span>
        </br>
        <input type="text" name="mo-carousel-width" id="mo-carousel-width" value="<?php echo esc_attr( get_post_meta( $object->ID, 'mo_carousel_width', true ) ); ?>" size="10" />

我是通過研究Shortcode API編寫的,我認為它應該可以工作,但是我還沒有嘗試過。

function mo_carousel_css() {
    global $post;
    preg_match( '/' . get_shortcode_regex() . '/s', $post->post_content, $m); 
    if (is_array($m) && $m[2] == 'shortcode' ) { 
                $shortcode_args = shortcode_parse_atts( $m[3] );
        $width = get_post_meta( $shortcode_args['idatt'], 'mo_carousel_width', true );
        <style type="text/css">
            .jcarousel-container-horizontal{ width:<?php echo $width; ?>px; }
        </style>
    } 
}

基本上,它是檢查當前帖子中是否使用了短代碼。 如果正在使用簡碼,請從中檢索屬性並使用id屬性獲取帖子元數據。

如果您的簡碼為[displayCustomPost id=24]則必須將shortcode替換為displayCustomPost並將idattid

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM