【问题标题】:Issue querying specific custom post type查询特定自定义帖子类型的问题
【发布时间】:2015-09-05 00:00:28
【问题描述】:

我不久前创建了这个网站,使用了一些自定义帖子类型,一切正常,现在我必须添加一个新的自定义帖子类型,并使用这个新的自定义帖子类型和“帖子”帖子类型创建一个循环。

类似这样的:

$args = array (
    'post_type' => array( 'post', 'newsletter' ),
        'posts_per_page' => -1,
        'order'     => 'DESC'
);

由于某种原因,这不起作用...

我对其他帖子类型有相同的数组并且工作正常。

$args = array (
    'post_type' => array( 'post', 'events' ),
        'posts_per_page' => -1,
        'order'     => 'DESC'
);

现在是奇怪的部分:

如果我有“帖子”-“事件”(事件是旧的自定义帖子类型),它可以工作,显示两种帖子自定义帖子类型, 如果我有'post'-'newsletter'(newsletter 是新的自定义帖子类型)它只显示帖子, 如果我有“事件”-“时事通讯”,它只会显示事件,

如果我创建一个新的自定义帖子类型“newsletter2”, 如果我有 'newsletter'-'newsletter2' 它可以工作,显示两种自定义帖子类型,但如果我有 'post'-'newsletter2' 它只显示 'post'

所以...由于某种原因,旧的自定义帖子类型似乎不适用于新的自定义帖子类型...有什么想法吗???

谢谢!!!

这是 'newsletter' 自定义帖子类型(顺便说一下,我的所有自定义帖子类型都完全相同,只是它们有自己的名称“events”、“people”而不是 newsletter ', '时事通讯2')

function custom_post_newsletter() {

$labels = array(
    'name'                => __( 'Newsletter' ),
    'singular_name'       => __( 'New Newsletter' )
);
$args = array(
    'labels'              => $labels,
    'supports'            => array( 'title', 'editor', 'thumbnail', ),
    'taxonomies'          => array( '', 'post_tag' ),
    'hierarchical'        => false,
    'menu_icon'           => 'dashicons-format-aside',
    'public'              => true,
    'show_ui'             => true,
    'show_in_menu'        => true,
    'show_in_nav_menus'   => true,
    'show_in_admin_bar'   => true,
    'menu_position'       => 7,
    'can_export'          => true,
    'has_archive'         => false,
    'exclude_from_search' => false,
    'publicly_queryable'  => true,
    'capability_type'     => 'page',
    'rewrite' => array( 'slug' => _x('newsletter', 'URL Slug', 'theTheme')),
);
register_post_type( 'newsletter', $args );

}

add_action( 'init', 'custom_post_newsletter', 0 );

这是循环:

    $args = array (
                'post_type' => array( 'newsletter', 'post' ),
                'posts_per_page' => -1,
                'order'     => 'DESC',
                'post_status' => 'any',
            );
    $loop = new WP_Query( $args );


    if ( $loop->have_posts() ) : while ( $loop->have_posts() ) : $loop->the_post();?>

     <li><? the_title(); ?></li> //here only shows post post_type posts.
    <?php   
    // end loop

    endwhile;
    endif;
    wp_reset_query(); ?>

【问题讨论】:

  • 请分享您如何注册newsletter 帖子类型的代码。
  • 如果 newsletter 以外的所有内容都使用相同的方式来注册帖子类型,那么您在某处就会出现命名约定冲突。
  • 这不是不工作,是工作但不是与旧的帖子类型..如果我单独显示它可以工作,但如果我尝试用旧的帖子类型显示它不起作用。 ..如果我添加另一个新的自定义帖子类型,它可以工作...... newsletter-newsletter2 它工作正常。

标签: php custom-post-type wordpress


【解决方案1】:

即使有赏金,也很难正确回答您的问题。

整个场景真正有趣的是,您的代码始终保持不变,因此您的问题与用于注册帖子类型的代码无关。

让我们看看可能的问题和默认值

  • WP_Query如果你使用get_posts,这保持不变,get_posts使用WP_Query)已经为其参数设置了预设值,并且默认情况下完全排除了一些值如果没有明确设置。让我们看看会影响结果的两个因素:

    • post_type -> 默认post

    • post_status -> 注销用户默认publish,登录用户默认publishprivate

由于您已将 post_type 设置为包含您的帖子类型,我能想到的唯一其他选择是,查看上述内容,newsletter 帖子类型帖子要么未发布,要么您有自定义帖子通过插件或自定义代码分配给他们的状态。

您需要探索这种可能性。尝试将'post_status' =&gt; 'any' 添加到您的自定义查询中,看看您是否从newsletter 帖子类型返回帖子。如果您为帖子分配了自定义帖子状态,我不完全确定这是否会起作用。

除此之外,关于这个问题,我真的没有什么可提供的。

【讨论】:

  • 感谢您的帮助,但仍然没有任何变化 :(。我更改了循环,并添加了 post_status 和 sill 相同...除了 private 当然它没有显示任何内容因为所有帖子都已发布。
  • newsletter post type 总是显示,如果它单独或与 newsletter2 post type 或我创建的任何新帖子类型一起显示.. 问题在于仍然无法正常工作的旧帖子类型。
  • 在黑暗中拍摄,在注册您的帖子类型时将您的优先级从0 更改为11。在继续之前,请备份您的数据库,然后修复您的数据库。你的数据库可能有问题。这里有一个link 来帮助你。还可以尝试重新安装 wordpress,停用插件并切换到捆绑的主题
  • 感谢您仍然帮助我 :D,我添加了 11 并且根本没有任何变化。我试图修复桌子,但无法关注此帖子stackoverflow.com/questions/10377334/…,然后我能够修复它,但仍然没有改变:(
  • 我启用的插件是 ACF 和 WPML,仅此而已
【解决方案2】:

也许您的主题和/或插件已经创建了“时事通讯”CPT?

您可以使用“获取帖子类型”来查看您当前拥有的所有帖子类型:

https://codex.wordpress.org/Function_Reference/get_post_types

【讨论】:

  • 您是否阅读了全文...我写道,我还创建了新的自定义帖子类型。时事通讯2,但仍然无法正常工作。
  • 只是为了检查任何可能的结果...我创建了一个新的帖子类型 newpost 并按照您的建议打印了所有自定义帖子类型,一切看起来都不错,但是在循环帖子类型时仍然没有变化.新的自定义 posy 类型适用于新类型,但旧的自定义帖子类型不适用于新类型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-28
  • 1970-01-01
  • 2017-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多