我将如何创建一个快捷代码来在页面或常规帖子中显示自定义帖子?

时间:2011-02-18 作者:gillespieza

我想创建一个快捷码,将提取自定义帖子的信息,并将其显示在页面或常规帖子中。

具体用例:我有一个电影节网站的自定义贴子类型“Film”。这些电影都有自己的单张电影。php,但有时网站所有者希望写一篇文章或页面,提及特定的电影,并希望能够提取已经输入的信息片段(例如,电影名称、预订信息等)。这将放在帖子底部的一个“框”中,我想通过提供一些短代码让他们更容易理解。

我该怎么做呢?有什么推荐的资源/教程可以让我走上正轨吗?我应该注意哪些问题(例如,帖子中的多个循环)?

2 个回复
最合适的回答,由SO网友:Bainternet 整理而成

网上有很多关于短代码的教程和一些很好的例子here

但为了让你开始:

add_shortcode(\'film_q\', \'film_shortcode_query\');
function film_shortcode_query($atts, $content){
  extract(shortcode_atts(array( // a few default values
   \'posts_per_page\' => \'1\',
   \'post_type\' => \'film\',
   \'caller_get_posts\' => 1)
   , $atts));

  global $post;

  $posts = new WP_Query($atts);
  $output = \'\';
    if ($posts->have_posts())
        while ($posts->have_posts()):
            $posts->the_post();
            $out = \'<div class="film_box">
                <h4>Film Name: <a href="\'.get_permalink().\'" title="\' . get_the_title() . \'">\'.get_the_title() .\'</a></h4>
                <p class="Film_desc">\'.get_the_content().\'</p>\';
                // add here more...
            $out .=\'</div>\';
    /* these arguments will be available from inside $content
        get_permalink()  
        get_the_content()
        get_the_category_list(\', \')
        get_the_title()
        and custom fields
        get_post_meta($post->ID, \'field_name\', true);
    */
    endwhile;
  else
    return; // no posts found

  wp_reset_query();
  return html_entity_decode($out);
}
要使用它,请在任何帖子/页面中输入:

[film_q p=FILM_POST_ID]
只需将FILM\\u POST\\u ID更改为实际的FILM POST ID。

希望这有帮助

SO网友:keatch

尝试从开始this tutorial.

在回调函数中,执行自定义的\\u查询(或使用get_post) 只提取与您相关的值。(即:标题、摘录……)

示例shorcode

[film id=10]
在函数中使用id来检索电影的内容。

结束

相关推荐

获取在Functions.php中设置的变量,并在我的Custom Post模板中回显它们

在我的函数中设置了以下函数。php文件,以允许我的自定义帖子类型“Slideshow”工作。add_action( \'the_post\', \'paginate_slide\' ); function paginate_slide( $post ) { global $pages, $multipage, $numpages; if( is_single() && get_post_type() == \'lom_s