【问题标题】:Turning Function into a shortcode - Wordpress将函数转换为简码 - Wordpress
【发布时间】:2016-01-14 15:00:21
【问题描述】:

所以我在下面使用这个功能完美,但是我想将它转换成一个 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;

?>

使用我正在创建的简码,我有不同的情况,这将用于我的自定义分类。我将使用此功能的所有页面都有一个带有 single-prod 和 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');

【问题讨论】:

  • 你在问什么?你的问题不清楚!您的第一个“功能”也不是功能。它是一个循环。
  • @MarkP 我想将第一个循环变成一个简码,我可以在其中创建案例以在我调用的特定 postid 号码上显示该循环。

标签: php sql shortcode wordpress


【解决方案1】:

将第一个代码放在一个函数中,比如说 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 查看获取属性等...

【讨论】:

  • 忘记添加了,在你的函数文件中玩循环时要小心。实际上要小心你的函数文件。
  • 所以我不需要做那些案子?它如何知道在哪个页面上发布哪些 pdf 文件?
  • 你会使用简码属性 - 查看我发送的链接。然后你可以在短代码中传递一些东西,比如 [myLoop pdf="123"] 或其他...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-11
  • 2021-02-05
  • 1970-01-01
  • 2020-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多