如何检查自定义岗位类型栏目是否已经存在?

时间:2017-06-21 作者:Zach Smith

在构建自定义post类型时,在为其创建逻辑时检查自定义列是否存在是明智的。要检查的代码是什么if_exists 还是类似的?

我的CPT列代码如下:

//set up new column to show custom meta value
function site_title_column($column) {
    $column[\'views\'] = \'Title\';
    return $column;
}

add_filter(\'manage_attorneys_posts_columns\', \'site_title_column\');

//show custom column data
function site_show_title_column($name) {
    global $post;
    switch ($name) {
        case \'views\':
            $title = get_post_meta($post->ID, \'_site_professional_title\', true);
            echo $title;
    }
}

add_action(\'manage_attorneys_posts_custom_column\',  \'site_show_title_column\');
会是以下情况吗?

//set up new column to show custom meta value
function site_title_column($column) {
    $column[\'views\'] = \'Title\';

    //if this value is blank, then it does not currently exist, 
    //...so output our custom $column:
    if ($column != NULL) {
       return $column;
    } else {
       return;
    }

    add_filter(\'manage_attorneys_posts_columns\', \'site_title_column\');

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

您应该首先检查,然后分配自定义列。$column 应该是真的$columns 传达真正的意义,因为它是一个数组。

因此,您需要检查数组键在赋值之前是否存在,例如isset()array_key_exists().

最后,自从你site_title_column() 函数修改过滤器的值,您应该始终返回一个值(通常是原始值,可能是修改后的值),只需调用return; 退货NULL (这很少是需要的)。

我会将您的函数重写为:

function site_title_column( $columns ) {
    if ( ! isset( $columns[\'views\'] ) ) {
        $columns[\'views\'] = \'Title\';
    }
    return $columns;
}

结束

相关推荐

在特定页面上加载Header.php

(TL;DR 以下提供)我在使用Divi主题时遇到了一个问题。我正在使用Gravity表单插件生成一个具有多重上传的表单。这种多重上传似乎使用了Ajax,从我的小测试来看,这似乎与Divi相冲突。(我将CDN置于开发模式并停用了所有插件,上载按钮/拖放仍然不起作用)。这个问题的解决方案是删掉一些代码:gravity_form_enqueue_scripts( 2, true ); 开业前<?php 以及wp_head(); ?>. 然而,这与台式机上的全宽Divi头冲突。在某种意义