我被难住了。我查看了各种网站,但没有找到我需要的确切代码。
基本上,我想创建一个自定义帖子标题列表,其中包含该帖子旁边某个自定义字段的日期。
最后,我将列出如下列表:
帖子标题1(带链接)。。。。。。相关自定义字段发布标题2(带链接)。。。。。。“自定义字段发布标题3(带链接)…”自定义字段
等
我希望能够通过一个简短的代码[船]将此添加到页面中。
我知道我的思路是正确的,但我已经将两位代码散列在一起了。我不知道如何将数组从php脚本(以$args=array开头的位)拉入extract(short code\\u atts。。。
我也不确定
</div>
<?php }
wp_reset_query();
}
这是目前为止的混乱。。。
add_shortcode(\'boats\', \'shortcode_boats\');
function shortcode_boats($atts){
extract(shortcode_atts
$args=array(
\'post_type\' => \'yacht-for-sale\',
\'post_status\' => \'publish\',
\'posts_per_page\' => 15,
\'caller_get_posts\'=> 1
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) { ?>
<h3>List of Available Yachts & Catamarans</h3>
<div id="boatlist">
<?php
while ($my_query->have_posts()) : $my_query->the_post();
$price = get_post_meta($post->ID, \'price\', true); ?>
<p class="boatrow"><span class="s-left"><?php the_title(); ?></span><span class="s-right"><?php echo $price; ?></span></p>
<?php endwhile; ?>
</div>
<?php }
wp_reset_query();
}
add_shortcode("boats", "shortcode_boats");
为了以防万一,我目前正在页面中使用Bill Erickson的“Display Posts Shortcode”插件,但我需要自定义字段“price”与其对齐。
[display posts post\\u type=“yacht for sale”order=“DSC”orderby=“title”posts\\u per\\u page=“20”]
谢谢你在这方面给我的任何帮助。我不是一个伟大的php程序员。。。正如你可能知道的那样。:)
干杯
特蕾西
最合适的回答,由SO网友:webdwall 整理而成
尝试以下代码:(我还没有对其进行测试,因此这里和那里可能没有什么东西,但您可以了解总体思路):
add_shortcode(\'boats\', \'shortcode_boats\');
function shortcode_boats($atts){
//merge the passed attributes with defaults
extract(
shortcode_atts(
array(
\'post_type\' => \'yacht-for-sale\',
\'post_status\' => \'publish\',
\'posts_per_page\' => 15,
\'caller_get_posts\' => 1 //i am not sure what you are doing with this value
),
$atts
)
);
//now create a seprate agruments array for wp_query using the values from above(extracted variables)
$args = array(
\'post_type\' => $post_type,
\'post_status\' => $post_status,
\'posts_per_page\' => $posts_per_page
);
ob_start();
$my_query = new WP_Query( $args );
if( $my_query->have_posts() ) {
?>
<h3>List of Available Yachts & Catamarans</h3>
<div id="boatlist">
<?php
while ($my_query->have_posts()) : $my_query->the_post();
$price = get_post_meta( get_the_ID(), \'price\', true); ?>
<p class="boatrow">
<span class="s-left"><?php the_title(); ?></span>
<?php if( isset( $price ) ) : ?>
<span class="s-right"><?php echo $price; ?></span>
<?php endif;?>
</p>
<?php endwhile; ?>
</div>
<?php
}
wp_reset_query();//reset the global variable related to post loop
$retVal = ob_get_contents();
ob_end_clean();
return $retVal;
}