0

幅のカスタム投稿タイプにメタ ボックスがあります。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が、それも機能していないようです。これは、値を作成するフォームのコードです。

    /* 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" />
4

1 に答える 1

1

これは 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ます。displayCustomPostidattid

于 2013-01-15T06:41:12.267 に答える