[英]How to make a shortcode to list category posts with sorting based on custom field value
我刚切换到一个新主题,不想覆盖模板文件。 在我的旧主题中,我有一个自定义的 sidebar.php 文件,在动态小部件部分上方包含以下代码。 对于新主题,我想用简码代替,只使用文本小部件将其放在侧边栏中。 如何将其转换为短代码?
<aside id="my-listings" class="widget widget-my-listings">
<h2 class="widget-title">Featured Listings</h2>
<ul>
<?php
global $post;
$listings = get_posts('category=3&numberposts=-1&orderby=meta_value&meta_key=price&order=DESC');
foreach($listings as $post) :
?>
<li><a href="<?php the_permalink(); ?>"><?php
if(get_post_meta($post->ID, "alternate_title", true)) {
echo get_post_meta($post->ID, "alternate_title", true);
} else {
the_title();
} ?></a></li>
<?php endforeach; ?>
</ul>
</aside>
使用此简码。
[mylistingswidget]
这是您函数中的代码位置。php
<?php
add_shortcode( 'mylistingswidget', 'my_listings_widget' );
function my_listings_widget( $atts ) {
ob_start();
?>
<aside id="my-listings" class="widget widget-my-listings">
<h2 class="widget-title">Featured Listings</h2>
<ul>
<?php
global $post;
$listings = get_posts('category=3&numberposts=-1&orderby=meta_value&meta_key=price&order=DESC');
foreach($listings as $post) :
?>
<li><a href="<?php the_permalink(); ?>"><?php
if(get_post_meta($post->ID, "alternate_title", true)) {
echo get_post_meta($post->ID, "alternate_title", true);
} else {
the_title();
} ?></a></li>
<?php endforeach; ?>
</ul>
</aside>
<?php
return ob_get_clean();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.