| Server IP : 89.108.64.180 / Your IP : 216.73.217.92 Web Server : Apache/2.4.41 (Ubuntu) System : Linux 89-108-64-180.cloudvps.regruhosting.ru 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : www-root ( 1010) PHP Version : 8.0.30 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/v-eiske.ru/wp-content/plugins/gdlr-portfolio/ |
Upload File : |
<?php
/*
Plugin Name: Goodlayers Portflio Post Type
Plugin URI:
Description: A Custom Post Type Plugin To Use With Goodlayers Theme ( This plugin functionality might not working properly on another theme )
Version: 1.0.0
Author: Goodlayers
Author URI: http://www.goodlayers.com
License:
*/
include_once( 'gdlr-portfolio-item.php');
include_once( 'gdlr-portfolio-option.php');
// action to loaded the plugin translation file
add_action('plugins_loaded', 'gdlr_portfolio_init');
if( !function_exists('gdlr_portfolio_init') ){
function gdlr_portfolio_init() {
load_plugin_textdomain( 'gdlr-portfolio', false, dirname(plugin_basename( __FILE__ )) . '/languages/' );
}
}
// add action to create portfolio post type
add_action( 'init', 'gdlr_create_portfolio' );
if( !function_exists('gdlr_create_portfolio') ){
function gdlr_create_portfolio() {
global $theme_option;
if( !empty($theme_option['portfolio-slug']) ){
$portfolio_slug = $theme_option['portfolio-slug'];
$portfolio_category_slug = $theme_option['portfolio-category-slug'];
$portfolio_tag_slug = $theme_option['portfolio-tag-slug'];
}else{
$portfolio_slug = 'portfolio';
$portfolio_category_slug = 'portfolio_category';
$portfolio_tag_slug = 'portfolio_tag';
}
register_post_type( 'portfolio',
array(
'labels' => array(
'name' => __('Portfolios', 'gdlr-portfolio'),
'singular_name' => __('Portfolio', 'gdlr-portfolio'),
'add_new' => __('Add New', 'gdlr-portfolio'),
'add_new_item' => __('Add New Portfolio', 'gdlr-portfolio'),
'edit_item' => __('Edit Portfolio', 'gdlr-portfolio'),
'new_item' => __('New Portfolio', 'gdlr-portfolio'),
'all_items' => __('All Portfolios', 'gdlr-portfolio'),
'view_item' => __('View Portfolio', 'gdlr-portfolio'),
'search_items' => __('Search Portfolio', 'gdlr-portfolio'),
'not_found' => __('No portfolios found', 'gdlr-portfolio'),
'not_found_in_trash' => __('No portfolios found in Trash', 'gdlr-portfolio'),
'parent_item_colon' => '',
'menu_name' => __('Portfolios', 'gdlr-portfolio')
),
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array( 'slug' => $portfolio_slug ),
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => 5,
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments', 'custom-fields' )
)
);
// create portfolio categories
register_taxonomy(
'portfolio_category', array("portfolio"), array(
'hierarchical' => true,
'show_admin_column' => true,
'label' => __('Portfolio Categories', 'gdlr-portfolio'),
'singular_label' => __('Portfolio Category', 'gdlr-portfolio'),
'rewrite' => array( 'slug' => $portfolio_category_slug )));
register_taxonomy_for_object_type('portfolio_category', 'portfolio');
// create portfolio tag
register_taxonomy(
'portfolio_tag', array('portfolio'), array(
'hierarchical' => false,
'show_admin_column' => true,
'label' => __('Portfolio Tags', 'gdlr-portfolio'),
'singular_label' => __('Portfolio Tag', 'gdlr-portfolio'),
'rewrite' => array( 'slug' => $portfolio_tag_slug )));
register_taxonomy_for_object_type('portfolio_tag', 'portfolio');
// add filter to style single template
if( defined('WP_THEME_KEY') && WP_THEME_KEY == 'goodlayers' ){
if( !empty($theme_option['portfolio-page-style']) && $theme_option['portfolio-page-style'] == 'blog-style' ){
add_filter('single_template', 'gdlr_register_portfolio_blog_template');
}else{
add_filter('single_template', 'gdlr_register_portfolio_template');
}
}
}
}
if( !function_exists('gdlr_register_portfolio_template') ){
function gdlr_register_portfolio_template($single_template) {
global $post;
if ($post->post_type == 'portfolio') {
$single_template = dirname( __FILE__ ) . '/single-portfolio.php';
}
return $single_template;
}
}
if( !function_exists('gdlr_register_portfolio_blog_template') ){
function gdlr_register_portfolio_blog_template($single_template) {
global $post;
if ($post->post_type == 'portfolio') {
$single_template = dirname( __FILE__ ) . '/single-portfolio-blog.php';
}
return $single_template;
}
}
// add filter for adjacent portfolio
add_filter('get_previous_post_where', 'gdlr_portfolio_post_where', 10, 2);
add_filter('get_next_post_where', 'gdlr_portfolio_post_where', 10, 2);
if(!function_exists('gdlr_portfolio_post_where')){
function gdlr_portfolio_post_where( $where, $in_same_cat ){
global $post;
if ( $post->post_type == 'portfolio' ){
$current_taxonomy = 'portfolio_category';
$cat_array = wp_get_object_terms($post->ID, $current_taxonomy, array('fields' => 'ids'));
if($cat_array){
$where .= " AND tt.taxonomy = '$current_taxonomy' AND tt.term_id IN (" . implode(',', $cat_array) . ")";
}
}
return $where;
}
}
add_filter('get_previous_post_join', 'get_portfolio_post_join', 10, 2);
add_filter('get_next_post_join', 'get_portfolio_post_join', 10, 2);
if(!function_exists('get_portfolio_post_join')){
function get_portfolio_post_join($join, $in_same_cat){
global $post, $wpdb;
if ( $post->post_type == 'portfolio' ){
$current_taxonomy = 'portfolio_category';
if(wp_get_object_terms($post->ID, $current_taxonomy)){
$join .= " INNER JOIN $wpdb->term_relationships AS tr ON p.ID = tr.object_id INNER JOIN $wpdb->term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id";
}
}
return $join;
}
}
?>