如何创建一个简单的相关帖子插件

时间:2013-12-18 作者:Jagst3r15

我认为最好在插件中保留一些东西。我有以下代码:

<div class="related-posts">

<h3>Related posts</h3>

<?php
    $orig_post = $post;
    global $post;
    $tags = wp_get_post_tags($post->ID);

    if ($tags) {
    $tag_ids = array();
    foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
    $args=array(
        \'tag__in\' => $tag_ids,
        \'post__not_in\' => array($post->ID),
        \'posts_per_page\'=>4, // Number of related posts to display.
        \'caller_get_posts\'=>1
    );

    $my_query = new wp_query( $args );

    while( $my_query->have_posts() ) {
    $my_query->the_post();
    ?>

    <div class="relatedthumb">
        <a rel="external" href="<? the_permalink()?>"><?php the_post_thumbnail(array(150,100)); ?><br />
        <?php the_title(); ?>
        </a>
    </div>

    <? }
    }
    $post = $orig_post;
    wp_reset_query();
?>
</div>
但我不知道如何将其添加到插件中。我的主要问题是,我不知道在我的单曲中如何称呼这一点。php。。。我知道要在插件和基本设置中添加类和函数,但除此之外,任何建议都很有用:)

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

对代码进行简单扫描后,您的代码看起来正常。您需要的是一个插件标题注释,一种将其打包并准备输出的方法,以及一种在模板中调用它的方法。

插件注释:您至少需要/* Plugin Name: Your plugins Name */

add_filter( \'your-filter-name\', \'pluginCallback\' );
function pluginCallback()
{
    // Your code without any echo or direct HTML tag calls *)
}
然后将其添加到模板中:

echo apply_filters( \'your-filter-name\', "" );
*) 而不是添加<div> HTML直接输出,或回显DOM节点(例如。echo \'<div>\';), 只需将它们放入字符串并返回结果:

$html = "";
if ( $query->have_posts()  )
{
    while ( $query->have_posts() )
    {
        $query->the_post();

        $html .= \'<div class="relatedthumb">\';
        $html .= sprintf( \'<a href="%s" title="%s">%s</a>\',
            get_the_permalink(),
            get_the_title(),
            get_the_post_thumbnail( /* args */ )
        );
        $html .= \'</div>\';
    }
}
// ... etc.
return $html;

结束

相关推荐