mirror of
https://github.com/lubuntu-team/lubuntu.me.git
synced 2025-07-24 21:31:29 +00:00
313 lines
7.2 KiB
PHP
313 lines
7.2 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Get Post Data
|
|
* @param array $args
|
|
* @return array
|
|
*/
|
|
function eael_get_post_data( $args ) {
|
|
$defaults = array(
|
|
'posts_per_page' => 5,
|
|
'offset' => 0,
|
|
'category' => '',
|
|
'category_name' => '',
|
|
'orderby' => 'date',
|
|
'order' => 'DESC',
|
|
'include' => '',
|
|
'exclude' => '',
|
|
'meta_key' => '',
|
|
'meta_value' => '',
|
|
'post_type' => 'post',
|
|
'post_mime_type' => '',
|
|
'post_parent' => '',
|
|
'author' => '',
|
|
'author_name' => '',
|
|
'post_status' => 'publish',
|
|
'suppress_filters' => true
|
|
);
|
|
|
|
$atts = wp_parse_args( $args, $defaults );
|
|
|
|
$posts = get_posts( $atts );
|
|
|
|
return $posts;
|
|
}
|
|
|
|
/**
|
|
* Get All POst Types
|
|
* @return array
|
|
*/
|
|
function eael_get_post_types(){
|
|
|
|
$eael_cpts = get_post_types( array( 'public' => true, 'show_in_nav_menus' => true ) );
|
|
$eael_exclude_cpts = array( 'elementor_library', 'attachment', 'product' );
|
|
|
|
foreach ( $eael_exclude_cpts as $exclude_cpt ) {
|
|
unset($eael_cpts[$exclude_cpt]);
|
|
}
|
|
|
|
$post_types = array_merge($eael_cpts);
|
|
return $post_types;
|
|
}
|
|
|
|
/**
|
|
* Add REST API support to an already registered post type.
|
|
*/
|
|
add_action( 'init', 'eael_custom_post_type_rest_support', 25 );
|
|
function eael_custom_post_type_rest_support() {
|
|
global $wp_post_types;
|
|
|
|
$post_types = eael_get_post_types();
|
|
foreach( $post_types as $post_type ) {
|
|
$post_type_name = $post_type;
|
|
if( isset( $wp_post_types[ $post_type_name ] ) ) {
|
|
$wp_post_types[$post_type_name]->show_in_rest = true;
|
|
$wp_post_types[$post_type_name]->rest_base = $post_type_name;
|
|
$wp_post_types[$post_type_name]->rest_controller_class = 'WP_REST_Posts_Controller';
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Post Settings Parameter
|
|
* @param array $settings
|
|
* @return array
|
|
*/
|
|
function eael_get_post_settings($settings){
|
|
$post_args['post_type'] = $settings['eael_post_type'];
|
|
|
|
if($settings['eael_post_type'] == 'post'){
|
|
$post_args['category'] = $settings['category'];
|
|
}
|
|
|
|
$post_args['posts_per_page'] = $settings['eael_posts_count'];
|
|
$post_args['offset'] = $settings['eael_post_offset'];
|
|
$post_args['orderby'] = $settings['eael_post_orderby'];
|
|
$post_args['order'] = $settings['eael_post_order'];
|
|
|
|
return $post_args;
|
|
}
|
|
|
|
/**
|
|
* Getting Excerpts By Post Id
|
|
* @param int $post_id
|
|
* @param int $excerpt_length
|
|
* @return string
|
|
*/
|
|
function eael_get_excerpt_by_id($post_id,$excerpt_length){
|
|
$the_post = get_post($post_id); //Gets post ID
|
|
|
|
$the_excerpt = null;
|
|
if ($the_post)
|
|
{
|
|
$the_excerpt = $the_post->post_excerpt ? $the_post->post_excerpt : $the_post->post_content;
|
|
}
|
|
|
|
$the_excerpt = strip_tags(strip_shortcodes($the_excerpt)); //Strips tags and images
|
|
$words = explode(' ', $the_excerpt, $excerpt_length + 1);
|
|
|
|
if(count($words) > $excerpt_length) :
|
|
array_pop($words);
|
|
array_push($words, '…');
|
|
$the_excerpt = implode(' ', $words);
|
|
endif;
|
|
|
|
return $the_excerpt;
|
|
}
|
|
|
|
/**
|
|
* Get Post Thumbnail Size
|
|
* @return array
|
|
*/
|
|
function eael_get_thumbnail_sizes(){
|
|
$sizes = get_intermediate_image_sizes();
|
|
foreach($sizes as $s){
|
|
$ret[$s] = $s;
|
|
}
|
|
|
|
return $ret;
|
|
}
|
|
|
|
/**
|
|
* POst Orderby Options
|
|
* @return array
|
|
*/
|
|
function eael_get_post_orderby_options(){
|
|
$orderby = array(
|
|
'ID' => 'Post ID',
|
|
'author' => 'Post Author',
|
|
'title' => 'Title',
|
|
'date' => 'Date',
|
|
'modified' => 'Last Modified Date',
|
|
'parent' => 'Parent Id',
|
|
'rand' => 'Random',
|
|
'comment_count' => 'Comment Count',
|
|
'menu_order' => 'Menu Order',
|
|
);
|
|
|
|
return $orderby;
|
|
}
|
|
|
|
/**
|
|
* Get Post Categories
|
|
* @return array
|
|
*/
|
|
function eael_post_type_categories(){
|
|
$terms = get_terms( array(
|
|
'taxonomy' => 'category',
|
|
'hide_empty' => true,
|
|
));
|
|
|
|
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
|
|
foreach ( $terms as $term ) {
|
|
$options[ $term->term_id ] = $term->name;
|
|
}
|
|
}
|
|
|
|
return $options;
|
|
}
|
|
|
|
/**
|
|
* WooCommerce Product Query
|
|
* @return array
|
|
*/
|
|
function eael_woocommerce_product_categories(){
|
|
$terms = get_terms( array(
|
|
'taxonomy' => 'product_cat',
|
|
'hide_empty' => true,
|
|
));
|
|
|
|
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
|
|
foreach ( $terms as $term ) {
|
|
$options[ $term->slug ] = $term->name;
|
|
}
|
|
return $options;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* WooCommerce Get Product By Id
|
|
* @return array
|
|
*/
|
|
function eael_woocommerce_product_get_product_by_id(){
|
|
$postlist = get_posts(array(
|
|
'post_type' => 'product',
|
|
'showposts' => 9999,
|
|
));
|
|
$posts = array();
|
|
|
|
if ( ! empty( $postlist ) && ! is_wp_error( $postlist ) ){
|
|
foreach ( $postlist as $post ) {
|
|
$options[ $post->ID ] = $post->post_title;
|
|
}
|
|
return $options;
|
|
|
|
}
|
|
}
|
|
|
|
/**
|
|
* WooCommerce Get Product Category By Id
|
|
* @return array
|
|
*/
|
|
function eael_woocommerce_product_categories_by_id(){
|
|
$terms = get_terms( array(
|
|
'taxonomy' => 'product_cat',
|
|
'hide_empty' => true,
|
|
));
|
|
|
|
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
|
|
foreach ( $terms as $term ) {
|
|
$options[ $term->term_id ] = $term->name;
|
|
}
|
|
return $options;
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Get Contact Form 7 [ if exists ]
|
|
*/
|
|
if ( function_exists( 'wpcf7' ) ) {
|
|
function eael_select_contact_form(){
|
|
$wpcf7_form_list = get_posts(array(
|
|
'post_type' => 'wpcf7_contact_form',
|
|
'showposts' => 999,
|
|
));
|
|
$posts = array();
|
|
|
|
if ( ! empty( $wpcf7_form_list ) && ! is_wp_error( $wpcf7_form_list ) ){
|
|
foreach ( $wpcf7_form_list as $post ) {
|
|
$options[ $post->ID ] = $post->post_title;
|
|
}
|
|
return $options;
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Get Gravity Form [ if exists ]
|
|
*/
|
|
|
|
function eael_select_gravity_form() {
|
|
|
|
$forms = RGFormsModel::get_forms( null, 'title' );
|
|
foreach( $forms as $form ) {
|
|
$options[ $form->id ] = $form->title;
|
|
}
|
|
return $options;
|
|
|
|
}
|
|
|
|
/**
|
|
* Get WeForms Form List
|
|
* @return array
|
|
*/
|
|
function eael_select_weform() {
|
|
|
|
$wpuf_form_list = get_posts( array(
|
|
'post_type' => 'wpuf_contact_form',
|
|
'showposts' => 999,
|
|
));
|
|
$posts = array();
|
|
|
|
if ( ! empty( $wpuf_form_list ) && ! is_wp_error( $wpuf_form_list ) ) {
|
|
foreach ( $wpuf_form_list as $post ) {
|
|
$options[ $post->ID ] = $post->post_title;
|
|
}
|
|
return $options;
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Get Ninja Form List
|
|
* @return array
|
|
*/
|
|
function eael_select_ninja_form() {
|
|
global $wpdb;
|
|
$eael_nf_table_name = $wpdb->prefix.'nf3_forms';
|
|
$forms = $wpdb->get_results( "SELECT id, title FROM $eael_nf_table_name" );
|
|
foreach( $forms as $form ) {
|
|
$options[$form->id] = $form->title;
|
|
}
|
|
return $options;
|
|
}
|
|
|
|
/**
|
|
* Get Caldera Form List
|
|
* @return array
|
|
*/
|
|
function eael_select_caldera_form() {
|
|
global $wpdb;
|
|
$eael_cf_table_name = $wpdb->prefix.'cf_forms';
|
|
$forms = $wpdb->get_results( "SELECT * FROM $eael_cf_table_name" );
|
|
foreach( $forms as $form ) {
|
|
$unserialize = unserialize( $form->config );
|
|
$form_title = $unserialize['name'];
|
|
$options[$form->form_id] = $form_title;
|
|
}
|
|
return $options;
|
|
}
|
|
|