将自定义创建的发布对象添加到Wordpress循环中

恩沃克

我们有一个用于处理事件的插件。该插件不处理重复发生的事件,因此我们想添加此功能。

我已经编写了一个查询,该查询正在起作用并提取我们想要的事件。看起来像这样:

SELECT posts.*, metaStartDate.meta_value as EventStartDate, meta.meta_value as EventRepeats, metaTimeSpans.meta_value as EventTimeRanges
FROM $wpdb->posts posts
LEFT JOIN $wpdb->postmeta meta ON (posts.ID = meta.post_id AND meta.meta_key = '_EventRepeats')
LEFT JOIN $wpdb->postmeta metaStartDate ON (posts.ID = metaStartDate.post_id AND metaStartDate.meta_key = '_EventStartDate')
LEFT JOIN $wpdb->postmeta metaRepeatsUntil ON (posts.ID = metaRepeatsUntil.post_id AND metaRepeatsUntil.meta_key = '_EventRepeatsUntil')
LEFT JOIN $wpdb->postmeta metaTimeSpans ON (posts.ID = metaTimeSpans.post_id AND metaTimeSpans.meta_key = '_EventTimeRanges')
WHERE posts.post_type = 'tribe_events'
AND posts.post_status = 'publish'
AND meta.meta_value != 'once'
AND '$queryDate 00:00:00' BETWEEN metaStartDate.meta_value AND metaRepeatsUntil.meta_value

正如我所提到的,这是在获取我们想要的事件,但是如何将它们添加到Wordpress循环中,以便类似have_posts()the_post()正常工作?

编辑:看起来正确的答案是使用WP_Query,但是有没有办法像WP_Query那样进行大型查询?

马蒂洛

你是正确的:应该使用 WP_Query 时与本地WordPress的数据库表时,即使您的自定义信息。然而,WordPress的提供了wpdb(你必须阅读本链接)数据库操作,它应该被用来工作,自己的自定义数据库表。

因此,如果您确实要执行该查询,则应使用wpdb的SELECT通用结果,并进行一些调整以将其“转换”为WordPress循环

<?php
// Your custom query
$querystr = "
    SELECT posts.*, metaStartDate.meta_value as EventStartDate, meta.meta_value as EventRepeats, metaTimeSpans.meta_value as EventTimeRanges
    FROM $wpdb->posts posts
    LEFT JOIN $wpdb->postmeta meta ON (posts.ID = meta.post_id AND meta.meta_key = '_EventRepeats')
    LEFT JOIN $wpdb->postmeta metaStartDate ON (posts.ID = metaStartDate.post_id AND metaStartDate.meta_key = '_EventStartDate')
    LEFT JOIN $wpdb->postmeta metaRepeatsUntil ON (posts.ID = metaRepeatsUntil.post_id AND metaRepeatsUntil.meta_key = '_EventRepeatsUntil')
    LEFT JOIN $wpdb->postmeta metaTimeSpans ON (posts.ID = metaTimeSpans.post_id AND metaTimeSpans.meta_key = '_EventTimeRanges')
    WHERE posts.post_type = 'tribe_events'
    AND posts.post_status = 'publish'
    AND meta.meta_value != 'once'
    AND '$queryDate 00:00:00' BETWEEN metaStartDate.meta_value AND metaRepeatsUntil.meta_value
 ";

// Execute the query using wpdb and fetch results as objects
$pageposts = $wpdb->get_results($querystr, OBJECT);

if ($pageposts){
    global $post;
    foreach ($pageposts as $post){

        // Here's the loop magic
        setup_postdata($post);

        // Now you are free to use any common loop functions, such as
        // the_ID();
        // the_permalink();
        // the_title();
        // and all others.
        ?>

        <div class="post" id="post-<?php the_ID(); ?>">
            <h2>
                <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>">
                    <?php the_title(); ?>
                </a>
            </h2>
            <small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small>
            <div class="entry">
                <?php the_content('Read the rest of this entry »'); ?>
            </div>
            <p class="postmetadata">Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?>  
            <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p>
        </div>
        <?php
    }
}else {
    // No results found
}
?>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将自定义Js添加到Wordpress主题

来自分类Dev

将自定义PHP表单添加到Wordpress

来自分类Dev

将自定义函数添加到对象原型

来自分类Dev

将自定义数据属性添加到Wordpress导航菜单

来自分类Dev

在WordPress中将自定义按钮添加到TinyMCE

来自分类Dev

WordPress-如何将自定义元框添加到特定的管理页面?

来自分类Dev

在Wordpress中将自定义CSS添加到页面模板

来自分类Dev

WordPress:将自定义样式添加到Gutenberg组块

来自分类Dev

将自定义数据添加到wordpress中每个帖子标题的顶部吗?

来自分类Dev

将自定义内容添加到wordpress帖子中,但未显示$ title之类的变量

来自分类Dev

将自定义字段添加到Dokan上的现有表单(wordpress / woocoomerce)

来自分类Dev

将自定义角色过滤器添加到wordpress woocommerce shop_manager

来自分类Dev

Wordpress将自定义HTTP标头添加到一个模板文件

来自分类Dev

将自定义css添加到wordpress导航中<a>标签内的<i>标签

来自分类Dev

通过短代码 WordPress 将自定义文本添加到联系表 7

来自分类Dev

人们为什么要将自己的自定义/用户功能添加到jQuery对象?

来自分类Dev

如何将自定义对象添加到字符串

来自分类Dev

ValidForm Builder-如何将自定义功能添加到addButton()对象

来自分类Dev

将自定义对象添加到Parse后端iOS

来自分类Dev

将自定义对象添加到JObject时出错

来自分类Dev

将自定义对象的parcelable添加到接口类

来自分类Dev

如何在GSON解析之前将自定义字段添加到对象

来自分类Dev

ValidForm Builder-如何将自定义功能添加到addButton()对象

来自分类Dev

如何使用Java将自定义字段添加到Salesforce中的现有对象

来自分类Dev

将自定义对象添加到Parse后端iOS

来自分类Dev

将自定义对象添加到二进制搜索树

来自分类Dev

将自定义对象添加到JObject时出错

来自分类Dev

将自定义对象添加到C#中的选中列表框中

来自分类Dev

如何在GSON解析之前将自定义字段添加到对象

Related 相关文章

  1. 1

    将自定义Js添加到Wordpress主题

  2. 2

    将自定义PHP表单添加到Wordpress

  3. 3

    将自定义函数添加到对象原型

  4. 4

    将自定义数据属性添加到Wordpress导航菜单

  5. 5

    在WordPress中将自定义按钮添加到TinyMCE

  6. 6

    WordPress-如何将自定义元框添加到特定的管理页面?

  7. 7

    在Wordpress中将自定义CSS添加到页面模板

  8. 8

    WordPress:将自定义样式添加到Gutenberg组块

  9. 9

    将自定义数据添加到wordpress中每个帖子标题的顶部吗?

  10. 10

    将自定义内容添加到wordpress帖子中,但未显示$ title之类的变量

  11. 11

    将自定义字段添加到Dokan上的现有表单(wordpress / woocoomerce)

  12. 12

    将自定义角色过滤器添加到wordpress woocommerce shop_manager

  13. 13

    Wordpress将自定义HTTP标头添加到一个模板文件

  14. 14

    将自定义css添加到wordpress导航中<a>标签内的<i>标签

  15. 15

    通过短代码 WordPress 将自定义文本添加到联系表 7

  16. 16

    人们为什么要将自己的自定义/用户功能添加到jQuery对象?

  17. 17

    如何将自定义对象添加到字符串

  18. 18

    ValidForm Builder-如何将自定义功能添加到addButton()对象

  19. 19

    将自定义对象添加到Parse后端iOS

  20. 20

    将自定义对象添加到JObject时出错

  21. 21

    将自定义对象的parcelable添加到接口类

  22. 22

    如何在GSON解析之前将自定义字段添加到对象

  23. 23

    ValidForm Builder-如何将自定义功能添加到addButton()对象

  24. 24

    如何使用Java将自定义字段添加到Salesforce中的现有对象

  25. 25

    将自定义对象添加到Parse后端iOS

  26. 26

    将自定义对象添加到二进制搜索树

  27. 27

    将自定义对象添加到JObject时出错

  28. 28

    将自定义对象添加到C#中的选中列表框中

  29. 29

    如何在GSON解析之前将自定义字段添加到对象

热门标签

归档