File: //home4/cca63905/.trash/wp-content/themes/enfold/includes/admin/register-portfolio.php
<?php
if ( ! defined( 'ABSPATH' ) ) { exit; } // Exit if accessed directly
add_action('init', 'portfolio_register');
function portfolio_register()
{
global $avia_config;
$labels = array(
'name' => _x('Portfolio Items', 'post type general name','avia_framework'),
'singular_name' => _x('Portfolio Entry', 'post type singular name','avia_framework'),
'add_new' => _x('Add New', 'portfolio','avia_framework'),
'add_new_item' => __('Add New Portfolio Entry','avia_framework'),
'edit_item' => __('Edit Portfolio Entry','avia_framework'),
'new_item' => __('New Portfolio Entry','avia_framework'),
'view_item' => __('View Portfolio Entry','avia_framework'),
'search_items' => __('Search Portfolio Entries','avia_framework'),
'not_found' => __('No Portfolio Entries found','avia_framework'),
'not_found_in_trash' => __('No Portfolio Entries found in Trash','avia_framework'),
'parent_item_colon' => ''
);
$permalinks = get_option('avia_permalink_settings');
if(!$permalinks) $permalinks = array();
$permalinks['portfolio_permalink_base'] = empty($permalinks['portfolio_permalink_base']) ? __('portfolio-item', 'avia_framework') : $permalinks['portfolio_permalink_base'];
$permalinks['portfolio_entries_taxonomy_base'] = empty($permalinks['portfolio_entries_taxonomy_base']) ? __('portfolio_entries', 'avia_framework') : $permalinks['portfolio_entries_taxonomy_base'];
$args = array(
'labels' => $labels,
'public' => true,
'show_ui' => true,
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => array('slug'=>_x($permalinks['portfolio_permalink_base'],'URL slug','avia_framework'), 'with_front'=>true),
'query_var' => true,
'show_in_nav_menus'=> true,
'show_in_rest' => true, // set to false to disallow block editor
'taxonomies' => array('post_tag'),
'supports' => array('title','thumbnail','excerpt','editor','comments', 'revisions' ),
'menu_icon' => 'dashicons-images-alt2'
);
$args = apply_filters('avf_portfolio_cpt_args', $args);
$avia_config['custom_post']['portfolio']['args'] = $args;
register_post_type( 'portfolio' , $args );
$tax_args = array(
"hierarchical" => true,
"label" => "Portfolio Categories",
"singular_label" => "Portfolio Category",
"rewrite" => array('slug'=>_x($permalinks['portfolio_entries_taxonomy_base'],'URL slug','avia_framework'), 'with_front'=>true),
"query_var" => true,
'show_in_rest' => true // set to false to disallow block editor
);
$avia_config['custom_taxonomy']['portfolio']['portfolio_entries']['args'] = $tax_args;
register_taxonomy("portfolio_entries", array("portfolio"), $tax_args);
//deactivate the avia_flush_rewrites() function - not required because we rely on the default wordpress permalink settings
remove_action('wp_loaded', 'avia_flush_rewrites');
}
#portfolio_columns, register_post_type then append _columns
add_filter("manage_edit-portfolio_columns", "prod_edit_columns");
add_filter("manage_edit-post_columns", "post_edit_columns");
add_filter("manage_edit-page_columns", "post_edit_columns");
add_action("manage_posts_custom_column", "prod_custom_columns");
add_action("manage_pages_custom_column", "prod_custom_columns");
/**
* Add a custom style for featured images in admin list table
*
* @since 4.2.1
*/
function avia_listtable_image_css()
{
?>
<style>
.widefat thead tr th#avia-image {
width: 45px;
}
</style>
<?php
}
function post_edit_columns($columns)
{
$newcolumns = array(
"cb" => "<input type=\"checkbox\" />",
"avia-image" => "Image",
);
$columns= array_merge($newcolumns, $columns);
add_action('admin_footer', 'avia_listtable_image_css');
return $columns;
}
function prod_edit_columns($columns)
{
$newcolumns = array(
"cb" => "<input type=\"checkbox\" />",
"avia-image" => "Image",
"title" => "Title",
"portfolio_entries" => "Categories"
);
$columns= array_merge($newcolumns, $columns);
add_action('admin_footer', 'avia_listtable_image_css');
return $columns;
}
function prod_custom_columns($column)
{
global $post;
switch ($column)
{
case "avia-image":
if (has_post_thumbnail($post->ID)){
echo get_the_post_thumbnail($post->ID, 'widget');
}
break;
case "description":
#the_excerpt();
break;
case "price":
#$custom = get_post_custom();
#echo $custom["price"][0];
break;
case "portfolio_entries":
echo get_the_term_list($post->ID, 'portfolio_entries', '', ', ','');
break;
}
}
/**
* avia portfolio permalink setting.
*
* @access public
* @return void
*/
if(!function_exists('avia_permalink_settings_init'))
{
function avia_permalink_settings_init()
{
global $avia_config;
if(!empty($avia_config['custom_post']))
{
foreach($avia_config['custom_post'] as $cpt => $cpt_args)
{
// Add a section to the permalinks page
add_settings_section('avia-permalink', $cpt_args['args']['labels']['singular_name'] . ' ' . __('Settings', 'avia_framework'), 'avia_permalink_settings', 'permalink');
}
}
}
add_action('admin_init', 'avia_permalink_settings_init');
}
if(!function_exists('avia_permalink_settings'))
{
function avia_permalink_settings()
{
global $avia_config;
if(!empty($avia_config['custom_post']))
{
foreach($avia_config['custom_post'] as $cpt => $cpt_args)
{
echo wpautop(__('These settings change the permalinks used for the', 'avia_framework') . ' ' . strtolower($cpt_args['args']['labels']['name']) . __('.', 'avia_framework'));
$permalinks = get_option('avia_permalink_settings');
if(!$permalinks) $permalinks = array();
$permalinks[$cpt.'_permalink_base'] = empty($permalinks[$cpt.'_permalink_base']) ? $cpt_args['args']['rewrite']['slug'] : $permalinks[$cpt.'_permalink_base'];
if(!empty($avia_config['custom_taxonomy'][$cpt]))
{
foreach($avia_config['custom_taxonomy'][$cpt] as $tax => $tax_args)
{
$permalinks[$tax.'_taxonomy_base'] = empty($permalinks[$tax.'_taxonomy_base']) ? $tax_args['args']['rewrite']['slug'] : $permalinks[$tax.'_taxonomy_base'];
}
}
?>
<table class="form-table">
<tbody>
<tr>
<th><?php echo $cpt_args['args']['labels']['name'] . ' ' . __('Base', 'avia_framework'); ?></th>
<td>
<?php $option_id = $cpt.'_permalink_base'; ?>
<input name="<?php echo $option_id; ?>" id="<?php echo $option_id; ?>" type="text" value="<?php echo esc_attr($permalinks[$option_id]); ?>" class="regular-text code"> <span class="description"><?php _e( 'Enter a custom base to use. A base must be set or WordPress will use default instead.', 'avia_framework' ); ?></span>
</td>
</tr>
<?php
if(!empty($avia_config['custom_taxonomy'][$cpt]))
{
foreach($avia_config['custom_taxonomy'][$cpt] as $tax => $tax_args)
{
?>
<tr>
<th><?php echo $tax_args['args']['label'] . ' ' . __('Base', 'avia_framework'); ?></th>
<td>
<?php $option_id = $tax.'_taxonomy_base'; ?>
<input name="<?php echo $option_id; ?>" id="<?php echo $option_id; ?>" type="text" value="<?php echo esc_attr($permalinks[$option_id]); ?>" class="regular-text code"> <span class="description"><?php _e( 'Enter a custom base to use. A base must be set or WordPress will use default instead.', 'avia_framework' ); ?></span>
</td>
</tr>
<?php
}
}
?>
</tbody>
</table>
<?php
}
}
}
}
if(!function_exists('avia_permalink_settings_save'))
{
function avia_permalink_settings_save()
{
if (defined('DOING_AJAX') && DOING_AJAX) return;
global $avia_config;
$permalinks = get_option('avia_permalink_settings');
if(!$permalinks) $permalinks = array();
if(!empty($avia_config['custom_post']))
{
foreach($avia_config['custom_post'] as $cpt => $cpt_args)
{
$option_id = $cpt.'_permalink_base';
// We need to save the options ourselves; settings api does not trigger save for the permalinks page
if(isset($_POST[$option_id]))
{
$permalinks[$option_id] = untrailingslashit(esc_html($_POST[$option_id]));
}
if(!empty($avia_config['custom_taxonomy'][$cpt]))
{
foreach($avia_config['custom_taxonomy'][$cpt] as $tax => $tax_args)
{
$option_id = $tax.'_taxonomy_base';
if(isset($_POST[$option_id]))
{
$permalinks[$option_id] = untrailingslashit(esc_html($_POST[$option_id]));
}
}
}
}
update_option('avia_permalink_settings', $permalinks);
}
}
add_action('admin_init', 'avia_permalink_settings_save');
}
add_filter( 'avf_alb_meta_field_names', 'avia_portfolio_add_meta_field_names', 10, 3 );
if( ! function_exists( 'avia_portfolio_add_meta_field_names' ) )
{
/**
* Add portfolio metakeys to be recognised in autosave and revisions
*
* @since 4.5.1
* @param array $meta_keys
* @param int $post_id
* @param string $context 'save' | 'restore'
*/
function avia_portfolio_add_meta_field_names( array $meta_keys, $post_id, $context )
{
$keys = array(
'_preview_ids',
'_preview_text',
'_preview_display',
'_preview_autorotation',
'_preview_columns',
'_portfolio_custom_link',
'_portfolio_custom_link_url',
'breadcrumb_parent'
);
/**
* Filter keys to be saved or restored
*
* @used_by currently unused
* @since 4.5.1
*/
$keys = apply_filters( 'avf_portfolio_meta_field_names', $keys, $meta_keys, $post_id, $context );
return array_merge( $meta_keys, $keys );
}
}