繁体   English   中英

如何制作简码以根据自定义字段值排序列出类别帖子

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM