[FRAMEWORK] Xây dựng page Community Phần 1 (ok)

Edit Community

C:\xampp\htdocs\reset4\wp-content\themes\addframwork\functions.php

<?php
add_action('after_setup_theme', 'blankslate_setup');
function blankslate_setup() {
  load_theme_textdomain('blankslate', get_template_directory() . '/languages');
  add_theme_support('title-tag');
  add_theme_support('post-thumbnails');
  add_theme_support('responsive-embeds');
  add_theme_support('automatic-feed-links');
  add_theme_support('html5', array('search-form', 'navigation-widgets'));
  add_theme_support('woocommerce');
  global $content_width;
  if (!isset($content_width)) {$content_width = 1920;}
  register_nav_menus(array('main-menu' => esc_html__('Main Menu', 'blankslate')));
}
add_filter('document_title_separator', 'blankslate_document_title_separator');
function blankslate_document_title_separator($sep) {
  $sep = esc_html('|');
  return $sep;
}
add_filter('the_title', 'blankslate_title');
function blankslate_title($title) {
  if ($title == '') {
    return esc_html('...');
  } else {
    return wp_kses_post($title);
  }
}
function blankslate_schema_type() {
  $schema = 'https://schema.org/';
  if (is_single()) {
    $type = "Article";
  } elseif (is_author()) {
    $type = 'ProfilePage';
  } elseif (is_search()) {
    $type = 'SearchResultsPage';
  } else {
    $type = 'WebPage';
  }
  echo 'itemscope itemtype="' . esc_url($schema) . esc_attr($type) . '"';
}
add_filter('nav_menu_link_attributes', 'blankslate_schema_url', 10);
function blankslate_schema_url($atts) {
  $atts['itemprop'] = 'url';
  return $atts;
}
if (!function_exists('blankslate_wp_body_open')) {
  function blankslate_wp_body_open() {
    do_action('wp_body_open');
  }
}
add_filter('the_content_more_link', 'blankslate_read_more_link');
function blankslate_read_more_link() {
  if (!is_admin()) {
    return ' <a href="' . esc_url(get_permalink()) . '" class="more-link">' . sprintf(__('...%s', 'blankslate'), '<span class="screen-reader-text">  ' . esc_html(get_the_title()) . '</span>') . '</a>';
  }
}
add_filter('excerpt_more', 'blankslate_excerpt_read_more_link');
function blankslate_excerpt_read_more_link($more) {
  if (!is_admin()) {
    global $post;
    return ' <a href="' . esc_url(get_permalink($post->ID)) . '" class="more-link">' . sprintf(__('...%s', 'blankslate'), '<span class="screen-reader-text">  ' . esc_html(get_the_title()) . '</span>') . '</a>';
  }
}
add_filter('big_image_size_threshold', '__return_false');
add_filter('intermediate_image_sizes', 'remove_default_img_sizes', 10, 1);
function remove_default_img_sizes($sizes) {
  $targets = ['medium_large', 'large', '1536x1536', '2048x2048', 'woocommerce_thumbnail', 'woocommerce_single', 'woocommerce_gallery_thumbnail', 'shop_catalog', 'shop_single', 'shop_thumbnail'];
  foreach ($sizes as $size_index => $size) {
    if (in_array($size, $targets)) {
      unset($sizes[$size_index]);
    }
  }
  return $sizes;
}
// == Start Script
add_action('wp_enqueue_scripts', 'ecademy_enqueue_style');
function ecademy_enqueue_style() {
  wp_enqueue_script('jquery');
  wp_enqueue_style("custom_css", get_stylesheet_directory_uri() . "/css/custom.css", array(), '1.1.0', 'all');
  $script_data_array = array(
    'ajaxurl'  => admin_url('admin-ajax.php'),
    'security' => wp_create_nonce('file_upload'),
  );
  wp_enqueue_script( 'jquery-ui-datepicker' );
  wp_enqueue_script('bootstrap_js', get_stylesheet_directory_uri() . '/js/bootstrap.bundle.min.js', array('jquery'), '123', 'all', true);
  wp_enqueue_script('custom_js', get_stylesheet_directory_uri() . '/js/custom.js', array('jquery'), '123', 'all', true);
  wp_localize_script('custom_js', 'app', $script_data_array);
}
function wpdocs_selectively_enqueue_admin_script($hook) {
  wp_enqueue_script('custom_js', get_stylesheet_directory_uri() . '/js/admin.js', array('jquery'), '123', 'all', true);
  wp_enqueue_style("custom_css", get_stylesheet_directory_uri() . "/css/admin.css", array(), '1.1.0', 'all');
}
add_action('admin_enqueue_scripts', 'wpdocs_selectively_enqueue_admin_script');
// Community
register_post_type( 'community',
  array(
    'labels'              => array(
      'add_new_item'       => __( 'Add community', "umm" ),
      'name'               => __( 'Community', "umm" ),
      'singular_name'      => __( 'community', "umm" ),
      'edit_item'          => __( 'Edit community', "umm" ),
      'view_item'          => __( 'View community', "umm" ),
      'search_items'       => __( 'Search community', "umm" ),
      'not_found'          => __( 'No community found', "umm" ),
      'not_found_in_trash' => __( 'No community found in Trash', "umm" ),
    ),
    'public'              => true,
    'has_archive'         => false,
    'show_in_menu'        => true,
    'supports'            => array('editor', 'title', 'comments','excerpt','thumbnail'),
    'rewrite'             => array( 'slug' => '' ),
    'publicly_queryable'  => true,
    'show_ui'             => true,
    'query_var'           => true,
    'capability_type'     => 'post',
    'hierarchical'        => true,
    'menu_position'       => null,
    'show_in_rest'        => true,
    'menu_icon'           => 'dashicons-format-chat',
  )
);
/**
 * Register a taxonomy Group
 *
 * @link http://codex.wordpress.org/Function_Reference/register_taxonomy
 */
function register_taxonomy_group_community() {
  $labels = array(
    'name' => 'Group',
    'singular_name' => 'Group',
    'menu_name' => 'Groups',
    'all_items' => 'All Groups',
    'edit_item' => 'Edit Group',
    'view_item' => 'View Group',
    'update_item' => 'Update Group',
    'add_new_item' => 'Add New Group',
    'new_item_name' => 'New Group Name',
    'parent_item' => 'Parent Group',
    'parent_item_colon' => 'Parent Group:',
    'search_items' => 'Search Groups',
    'popular_items' => 'Popular Groups',
    'separate_items_with_commas' => 'Separate Groups with commas',
    'add_or_remove_items' => 'Add or remove Groups',
    'choose_from_most_used' => 'Choose from the most used Groups',
    'not_found' => 'No Groups found',
  );
  $args = array(
    'labels'                     => $labels,
    'hierarchical'               => true,
    'public'                     => true,
    'show_ui'                    => true,
    'query_var'                  => true,
    'show_admin_column'          => true,
    'show_in_nav_menus'          => true,
    'show_tagcloud'              => false,
    'rewrite'           => array( 'slug' => 'group'),
  );
  register_taxonomy("group","community", $args);
}
add_action( 'init', 'register_taxonomy_group_community' );
// == End Script
// Start App
require get_template_directory() . '/inc/define.php';
require get_template_directory() . '/framework/init.php';
require get_template_directory() . '/inc/functions/function-setup.php';
require get_template_directory() . '/inc/functions/function-global.php';
require_once get_template_directory().'/framework/ajax/business.php';
require_once get_template_directory().'/framework/ajax/deal.php';
require_once get_template_directory().'/framework/ajax/news.php';
// End App
/**
 * Edit Post Community
 */
add_action( 'wp_ajax_edit_post_single', 'edit_post_single' );
function edit_post_single(){
  $current_user_id = get_current_user_id();
  check_ajax_referer( AT_NONCE_KEY.'edit-community'.$current_user_id, 'edit-community-token');
  $post_id = intval($_POST['post_id']);
  $content = sanitize_text_field($_POST['message']);
  $location = sanitize_text_field($_POST['location']);
  $delete_current_img = $_POST['remove_image'];
  $delete_before_img = $_POST['remove_image_title'];
  $arr_delete_before_img = explode(',', $delete_before_img);
  $list_images_post_arr = json_decode( get_post_meta($post_id,"img_single_community",true),true );
  if ( empty($list_images_post_arr) ) $list_images_post_arr = array();
  $my_post = array(
    'ID'           => $post_id,
    'post_content' => $content,
    'post_excerpt' => $location,
  );
  wp_update_post( $my_post );
  if (!empty($delete_current_img)) {
    $arr_id_img = explode(',', $delete_current_img);
    if(!empty($arr_id_img)){
      foreach ($arr_id_img as $key => $value) {
        delete_img_by_id($value);
        if (($key = array_search($value, $list_images_post_arr)) !== false) {
          unset($list_images_post_arr[$key]);
        }
      }
      update_post_meta( $post_id, 'img_single_community', json_encode($list_images_post_arr));
    }
  }
  //Save attach
  if(isset($_FILES['upload_files'])) {
    $attachment_img = array();
    $devvn_files = $_FILES['upload_files'];
    for($i=0; $i<sizeof($_FILES['upload_files']['name']); $i++){
      if (!in_array($i+1, $arr_delete_before_img)){
        if ($devvn_files['size'][$i] > 0 && $devvn_files['error'][$i] == 0) {
          $file = array(
            'name' => $devvn_files['name'][$i],
            'type' => $devvn_files['type'][$i],
            'tmp_name' => $devvn_files['tmp_name'][$i],
            'error' => $devvn_files['error'][$i],
            'size' => $devvn_files['size'][$i]
          );
          $result_upload = upload_image($file);
          if($result_upload['status'] == 'success'){
            array_push($list_images_post_arr,$result_upload["content"]);
          }
        }
      }
    }
    unset($_FILES);
    if(!empty($list_images_post_arr)){
      update_post_meta( $post_id, 'img_single_community', json_encode($list_images_post_arr));
    }
  }
  wp_die();
}

C:\xampp\htdocs\reset4\wp-content\themes\addframwork\js\custom.js

C:\xampp\htdocs\reset4\wp-content\themes\addframwork\single-community.php

Last updated

Was this helpful?