acfe_archive_ppp)){
return;
}
// get item
$item = acfe_get_module('post_type')->get_item($typenow, 'db');
if(!$item){
return;
}
?>
is_main_query() || $pagenow !== 'edit.php'){
return;
}
$post_type = $query->get('post_type');
$object = get_post_type_object($post_type);
$admin_order_by = acfe_get($object, 'acfe_admin_orderby');
$admin_order = acfe_get($object, 'acfe_admin_order');
$admin_meta_key = acfe_get($object, 'acfe_admin_meta_key');
$admin_meta_type = acfe_get($object, 'acfe_admin_meta_type');
if($admin_order_by && !acfe_maybe_get_REQUEST('orderby')){
$query->set('orderby', $admin_order_by);
}
if($admin_order && !acfe_maybe_get_REQUEST('order')){
$query->set('order', $admin_order);
}
if($admin_meta_key && !acfe_maybe_get_REQUEST('meta_key')){
$query->set('meta_key', $admin_meta_key);
}
if($admin_meta_type && !acfe_maybe_get_REQUEST('meta_type')){
$query->set('meta_type', $admin_meta_type);
}
}
/**
* admin_archive_ppp
*
* edit_posts_per_page
*
* @param $ppp
* @param $post_type
*
* @return mixed
*/
function admin_archive_ppp($ppp, $post_type){
global $pagenow;
if($pagenow !== 'edit.php'){
return $ppp;
}
$object = get_post_type_object($post_type);
$admin_ppp = acfe_get($object, 'acfe_admin_ppp');
$user_ppp = get_user_option("edit_{$post_type}_per_page");
if(!$admin_ppp || !empty($user_ppp)){
return $ppp;
}
return $admin_ppp;
}
/**
* front_archive_posts
*
* pre_get_posts:9
*
* @param $query
*/
function front_archive_posts($query){
if(is_admin() || !$query->is_main_query() || !is_post_type_archive()){
return;
}
$post_type = $query->get('post_type');
$object = get_post_type_object($post_type);
$archive_ppp = acfe_get($object, 'acfe_archive_ppp');
$archive_orderby = acfe_get($object, 'acfe_archive_orderby');
$archive_order = acfe_get($object, 'acfe_archive_order');
$archive_meta_key = acfe_get($object, 'acfe_archive_meta_key');
$archive_meta_type = acfe_get($object, 'acfe_archive_meta_type');
if($archive_ppp){
$query->set('posts_per_page', $archive_ppp);
}
if($archive_orderby){
$query->set('orderby', $archive_orderby);
}
if($archive_order){
$query->set('order', $archive_order);
}
if($archive_meta_key){
$query->set('meta_key', $archive_meta_key);
}
if($archive_meta_type){
$query->set('meta_type', $archive_meta_type);
}
}
/**
* front_template
*
* template_include
*
* @param $template
*
* @return mixed|string
*/
function front_template($template){
if(!is_single() && !is_post_type_archive() && !is_home()){
return $template;
}
// Get_query_var
$query_var = get_query_var('post_type', false);
if(is_array($query_var) && !empty($query_var)){
$query_var = $query_var[0];
}
foreach(get_post_types(array(), 'objects') as $post_type){
// Get_query_var check
$is_query_var = $query_var && $query_var === $post_type->name;
// Get_post_type check
$get_post_type = get_post_type() === $post_type->name;
// Acfe_archive_template
$acfe_archive_template = isset($post_type->acfe_archive_template) && !empty($post_type->acfe_archive_template);
// Acfe_archive_template
$acfe_single_template = isset($post_type->acfe_single_template) && !empty($post_type->acfe_single_template);
// Global check
if(!$get_post_type || !$is_query_var || (!$acfe_archive_template && !$acfe_single_template)){
continue;
}
$rule = array();
$rule['is_archive'] = is_post_type_archive($post_type->name);
$rule['has_archive'] = $post_type->has_archive;
$rule['is_single'] = is_singular($post_type->name);
// Post Exception
if($post_type->name === 'post'){
$rule['is_archive'] = is_home();
$rule['has_archive'] = true;
}
// Archive
if($rule['has_archive'] && $rule['is_archive'] && $acfe_archive_template && ($locate = locate_template(array($post_type->acfe_archive_template)))){
return $locate;
}
// Single
elseif($rule['is_single'] && $acfe_single_template && ($locate = locate_template(array($post_type->acfe_single_template)))){
return $locate;
}
}
return $template;
}
/**
* post_updated_messages
*
* post_updated_messages
*
* @param $messages
*
* @return array|mixed
*/
function post_updated_messages($messages){
// globals
global $post_type, $post_type_object, $post;
// post type not managed by acfe
if(!isset($post_type_object->acfe_archive_ppp)){
return $messages;
}
// vars
$viewable = is_post_type_viewable($post_type_object);
$preview_url = get_preview_post_link($post);
$permalink = get_permalink($post->ID);
if(!$permalink){
$permalink = '';
}
// default links
$preview_post_link_html = '';
$scheduled_post_link_html = '';
$view_post_link_html = '';
if($viewable){
$view_item = __('View post');
$preview_item = __('Preview post');
if(isset($post_type_object->labels->view_item)){
$view_item = $post_type_object->labels->view_item;
$preview_item = $post_type_object->labels->view_item;
}
$preview_post_link_html = sprintf(' %2$s', esc_url($preview_url), $preview_item);
$scheduled_post_link_html = sprintf(' %2$s', esc_url($permalink), $preview_item);
$view_post_link_html = sprintf(' %2$s', esc_url($permalink), $view_item);
}
$scheduled_date = sprintf(
__('%1$s at %2$s'),
date_i18n(_x('M j, Y', 'publish box date format'), strtotime($post->post_date)),
date_i18n(_x('H:i', 'publish box time format'), strtotime($post->post_date))
);
if(isset($post_type_object->labels->item_updated)){
$messages[ $post_type ][1] = $post_type_object->labels->item_updated . $view_post_link_html;
$messages[ $post_type ][4] = $post_type_object->labels->item_updated;
$messages[ $post_type ][7] = $post_type_object->labels->item_updated;
$messages[ $post_type ][8] = $post_type_object->labels->item_updated . $preview_post_link_html;
$messages[ $post_type ][10] = $post_type_object->labels->item_updated . $preview_post_link_html;
}
if(isset($post_type_object->labels->item_published)){
$messages[ $post_type ][6] = $post_type_object->labels->item_published . $view_post_link_html;
}
if(isset($post_type_object->labels->item_scheduled)){
$messages[ $post_type ][9] = $post_type_object->labels->item_scheduled . ' ' . $scheduled_date . '' . $scheduled_post_link_html;
}
// return
return $messages;
}
/**
* enter_title_here
*
* enter_title_here
*
* @param $placeholder
* @param $post
*
* @return mixed
*/
function enter_title_here($placeholder, $post){
if(isset($post->post_type)){
$post_type_obj = get_post_type_object($post->post_type);
if(isset($post_type_obj->labels->enter_title)){
return $post_type_obj->labels->enter_title;
}
}
return $placeholder;
}
}
new acfe_module_post_type_features();
endif;