0

ショートコードを使用して HTML/テキスト ウィジェットに特定のデータを表示したいと考えています。

私は既に functions.php でインクルード php 呼び出しを行っています:

function event_widget($atts) {

// turn on output buffering to capture script output

ob_start();

// include file (contents will get saved in output buffer)

include("wp-content/themes/mytheme/widgets/event.php");

// save and return the content that has been output

$content = ob_get_clean();
return $content;
}
//register the Shortcode handler
add_shortcode('event', 'event_widget');

プレーンテキストをevent.phpに入れるとウィジェットにデータが取得されるため、呼び出しは正しく行われますが、このデータを取得するためにevent.phpを記述する方法がわかりません:

// the loop
<?php if (have_posts()) :
        while (have_posts()) : the_post(); ?>

<ul>
<li>
<?php if( get_post_meta($post->ID, "customfield1", true) ): ?>
<?php echo get_post_meta($post->ID, "customfield1", true); ?>
<?php endif; ?>
</li>

<li>
<?php if( get_post_meta($post->ID, "customfield2", true) ): ?>
<?php echo get_post_meta($post->ID, "customfield2", true); ?>
<?php endif; ?>
</li>
</ul>
4

2 に答える 2

1

これを試して:

global $post;
echo get_post_meta($post->ID, "customfield1", true);
echo get_post_meta($post->ID, "customfield2", true);

falseの値をエコーすると、その値は''(なし)になるため、設定されているかどうかを確認する必要はありません。

于 2013-01-06T00:55:01.257 に答える
0

また、これは完璧に機能します:

<?php
global $post;

$args = array('category' => 37, 'post_type' => 'post' ); 
$postslist = get_posts( $args ); 
foreach ($postslist as $post) : setup_postdata($post); 
?> 
<?php if( get_post_meta($post->ID, "customfield1", true) ): ?>
<?php echo get_post_meta($post->ID, "customfield1", true); ?></span>
<?php endif; ?>

このコードに何か「問題」がありますか?

于 2013-01-06T09:53:50.327 に答える