基于后元的条件

时间:2017-09-27 作者:Randomer11

我的函数中有这段代码。php:

  // Disable theme single views
function fq_disable_single_cpt_views() {
  $queried_post_type = get_query_var(\'post_type\');
  $cpts_without_single_views = array( \'ait-item\' );
  if ( is_single() && in_array( $queried_post_type, $cpts_without_single_views )  ) {
      wp_redirect( home_url( \'/sorry\' ), 301 );
    exit;
  }
}

add_action( \'template_redirect\', \'fq_disable_single_cpt_views\' );\'
将特定帖子类型的单页请求重定向到创建的页面。因此,如果有人进入某个类别,单击帖子永久链接,他们会被定向到一个专用页面。

如果这篇文章没有特色,我现在只想应用上面的内容。因此,如果他们的帖子有特色,它仍然会指向真正的帖子,而不是重定向。

我遇到的问题是理解是否可以从函数中实现这一点。php。主题文件使用Nette框架,我对此不太有信心。这是显示“isfeatured”查询的主题片段。我想知道如何使用if语句来执行此操作?

{var $dbFeatured = get_post_meta($post->id, \'_ait-item_item-featured\', true)}
======================================================

**

其他问题未回答

**

感谢您回答上述问题,下面是想要获取get\\U post\\U meta的所有人的答案。

我现在想知道是否可以使用用户角色而不是get\\u post\\u meta,因此如果某个帖子属于某个用户,而该用户的角色不是经过验证的成员,则会被重定向,但如果该帖子属于经过验证的成员,则会转到主配置文件。

使用下面的解决方案,我尝试了这段代码,但我看不出我做错了什么?

function fq_disable_single_cpt_views() {
    $queried_post_type = get_query_var(\'post_type\');
    $cpts_without_single_views = array( \'ait-item\' );

$user_meta=get_userdata($user_id); $user_roles=$user_meta->roles; if (in_array("cityguide_84d6da05", $user_roles)){}

    if (    is_single()
        &&  in_array( $queried_post_type, $cpts_without_single_views )
        &&  ("0" === $_ait_item_item_featured)
    ) {
        wp_redirect( home_url( \'/sorry\' ), 301 );
        exit;
    }

}

add_action( \'template_redirect\', \'fq_disable_single_cpt_views\' );
仅供参考,cityguide\\u 84d6da05是已验证成员的用户角色。

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

要在元值上添加条件,可以如下修改测试:

function fq_disable_single_cpt_views() {

    $queried_post_type = get_query_var(\'post_type\');
    $cpts_without_single_views = array( \'ait-item\' );

    $_ait_item_item_featured = get_post_meta(get_the_ID(), "_ait-item_item-featured", TRUE);

    if (    is_single()
        &&  in_array( $queried_post_type, $cpts_without_single_views )
        &&  ("0" === $_ait_item_item_featured)
    ) {
        wp_redirect( home_url( \'/sorry\' ), 301 );
        exit;
    }

}

结束

相关推荐

WordPress中Single-{post-type}.php的固定链接结构

我尝试了多种方法将我的自定义帖子类型显示为single-{post-type} 最后,我用过之后,效果很好:\'rewrite\'=> false, 在那之前,我用\'rewrite\' => array( \'slug\' => \'custom-post-type\' ) 但对我来说从来都不管用。不知道我哪里出错了。现在我应该感到很高兴,因为它的工作没有任何错误。但permalink有一点困惑,因为它的显示:localhost/myblog/?news=break