将函数转换为短代码 - Wordpress

时间:2016-01-14 15:00:22

标签: php sql wordpress shortcode wp-query

所以我在下面使用这个功能完美,但是我想把它转换为wordpress短代码。

<?php
if( have_rows('pdf_download') ):
    while ( have_rows('pdf_download') ) : the_row(); ?>
        <ul>
            <li><a href="<?php the_sub_field('pdf_download'); ?>">File Download</a></li> 
        </ul>
        <?php

    endwhile;

else :

endif;

?>

使用我正在创建的短代码我有不同的情况,这将用于我的自定义分类。我将使用此函数的所有页面都有一个带有单引脚和postid的主体类 - ##。我正在考虑编写针对我想要的特定帖子ID号码的案例。如果有人能帮助我,我会有类似的东西

function data_prod($atts) {

    global $post;

    switch($post->ID) {
        // Xbox One
        case 29:
            $query = new WP_Query(array(Do Something HERE));
            break;
        // Iphone 6s
        case 25:
            $query = new WP_Query(array(Do Something HERE));
            break;
        // iWatch
        case 17:
            $query = new WP_Query(array(Do Something HERE));
            break;
    }

    $content = '';
    $content .= '<ul>';
        while($query->have_rows('pdf_download')) : $query->the_row();
            $content .= '<li><a href="<?php the_sub_field('pdf_download'); ?>">File Download</a></li> ';
        endwhile;
    $content .= '</ul>';

    return $content;
}
add_shortcode('data_prod', 'data_prod');

1 个答案:

答案 0 :(得分:0)

将第一个代码放在一个函数中,让我们说yourLoopF​​unction:

function yourLoopFunction() {
 if( have_rows('pdf_download') ):
while ( have_rows('pdf_download') ) : the_row(); ?>
    <ul>
        <li><a href="<?php the_sub_field('pdf_download'); ?>">File Download</a></li> 
    </ul>
    <?php

endwhile;

 else :

endif;
}

然后添加:

add_shortcode('myLoop', 'yourLoopFunction');

这将创建您可以使用的短代码[myloop]。

所有这些应该在你的functions.php中,用于从functions.php文件链接到的自定义文件。

您的第一站应该是:Wordpress Shortcode API来查看获取属性等...