首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建wordpress短代码以显示类别文章

创建wordpress短代码以显示类别文章
EN

Stack Overflow用户
提问于 2015-11-23 20:58:36
回答 2查看 1.5K关注 0票数 1

这是我到目前为止所拥有的。我绝不是一个伟大的程序员。只是个前端的家伙想让这件事开始运作。我有一个不同的博客类别的网站。例如,我有一个类别叫:食物,地点,东西。我正在尝试编写一个函数,在那里我可以执行这样的短代码:

list_post mycat=“食品”

基本上,我希望它是灵活的,所以无论我在“我的猫”里面放什么类别,它都会显示那些博客。

同样,任何帮助都将是非常感谢的。我知道我需要传递一个参数,但老实说,我不确定如何传递。这是我最大的努力。谢谢你们的支持

代码语言:javascript
复制
    $args = array(
    //Pass parameter here
    //Something like array (
        //$mycat => 'slug';
    //);

    );

function list_post($mycat){


    $query = new WP_Query(array('category_name' => $mycat));
    if($query->have_posts()):
        while($query->have_posts()):the_post();
            the_title();
        endwhile;
    else:
        echo "No posts found!";
    endif;
    wp_reset_postdata();
}

add_shortcode('list_post', 'list_post')
EN

回答 2

Stack Overflow用户

发布于 2015-11-23 21:04:07

您的短代码接受1参数,它是一个数组,其中包含值。因此,对于本例,$mycat看起来像这个=> array('mycat' => 'foods');,因此对于这个实例,您应该使用以下方法来提取和比较:

代码语言:javascript
复制
function list_post($atts){
    $arr = shortcode_atts( array(
        'mycat' => 'some_default_category',
    ), $atts );
    //now you can call $arr['mycat']; instead of $mycat.
}
票数 0
EN

Stack Overflow用户

发布于 2015-11-24 05:45:22

更容易使用员额()来实现这一点。

代码语言:javascript
复制
function list_post($atts){
    $arr = shortcode_atts(
        array(
            'mycat' => 'slug',
        ), $atts );

    $args = array('category_name' => $arr['mycat']);
    $out = '';
    $posts = get_posts($args);
    if ($posts){
        foreach ($posts as $post) {
            $out .= $post->post_title . '<br />';
        }
    }
    else {
        $out .= 'No posts found!';
    }
    return $out;

}

add_shortcode('list_post', 'list_post');

请注意,最好是从您的短代码返回输出,而不是回显它。

编辑:根据extract()建议删除@PieterGoosen's函数的使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33880565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档