Code for displaying the latest posts from the 'recipes' post type..

WPTurbo » Snippets » Code for displaying the latest posts from the 'recipes' post type..
0

Created with:

Visibility: 

public

Creator: Goran

Customize with WPTurbo AI
X

Add Snippet To Project

New Project
Add To Existing Project
					<?php
/**
 * Plugin Name: BogoWorkshop Tools
 * Description: Utility toolkit for WooCommerce and site management. Modular admin, split by function.
 * Version: 2.0.0
 * Author: bogoworkshop
 * Text Domain: bogoworkshop-tools
 */

// Exit if accessed directly outside of WordPress.
if (!defined('ABSPATH')) exit;

// Load modular plugin components.
require_once __DIR__ . '/includes/shortcodes.php';
require_once __DIR__ . '/includes/woo-customizations.php';
require_once __DIR__ . '/includes/output-css.php';
//require_once __DIR__ . '/includes/settings-side-menu.php'; // <-- Important for Slide Menu settings

// Admin Page Callbacks: Each settings page is modular and included below.

function bw_tools_settings_general() { 
    include __DIR__ . '/includes/settings-general.php'; 
  //  include __DIR__ . '/includes/functions/source-general.php'; 
 
}
function bw_tools_settings_login_visibility() {
    include __DIR__ . '/includes/login-visibility/admin-login-visibility.php'; 
    include __DIR__ . '/includes/login-visibility/functions-login-visibility.php';   
}
function bw_tools_settings_woocommerce() { 
    include __DIR__ . '/includes/woocommerce/admin-woocommerce.php'; 
    include __DIR__ . '/includes/woocommerce/functions-woocommerce.php'; 
   
}
function bw_tools_settings_shortcodes() {
    include __DIR__ . '/includes/shortcodes/admin-shortcodes.php'; 
    include __DIR__ . '/includes/shortcodes/functions-shortcodes.php'; 
   
}
function bw_tools_settings_jetpack() {
    include __DIR__ . '/includes/settings-jetpack.php'; 
   // include __DIR__ . '/includes/functions/source-jetpack.php'; 
  
}
function bw_tools_settings_scheduler() {
    include __DIR__ . '/includes/settings-scheduler.php'; 
    //include __DIR__ . '/includes/functions/source-scheduler.php'; 
    
}
function bw_tools_settings_login() {
    include __DIR__ . '/includes/settings-redirections.php'; 
   // include __DIR__ . '/includes/functions/source-redirections.php'; 

}
function bw_tools_settings_qr() {
    include __DIR__ . '/includes/settings-qr.php'; 
  //  include __DIR__ . '/includes/functions/source-qr.php'; 

}

function bw_tools_settings_tools() {
    include __DIR__ . '/includes/settings-tools.php'; 
   // include __DIR__ . '/includes/functions/source-tools.php'; 
   
}
function bw_tools_settings_login_registration()  {
    include __DIR__ . '/includes/settings-login-registration.php'; 
   // include __DIR__ . '/includes/functions/source-login-registration.php'; 
  
}
function bw_tools_settings_vacation_mode() {
    include __DIR__ . '/includes/settings-vacation-mode.php';
   // include __DIR__ . '/includes/functions/source-vacation-mode.php'; 

}
/*function bw_tools_settings_slide_menu() {
    include __DIR__ . '/includes/settings-side-menu.php';
    include __DIR__ . '/includes/functions/source-side-menu.php'; 

}*/
// --------- SLIDE MENU SETTINGS CALLBACK ---------
/*
if (!function_exists('bw_tools_settings_slide_menu')) {
    function bw_tools_settings_slide_menu() {
        // You can further break this into a separate file if desired.
        ?>
        <div class="wrap">
            <h1><?php esc_html_e('Slide Menu Settings', 'bogoworkshop-tools'); ?></h1>
            <p><?php esc_html_e('This is your Slide Menu settings page. You can add your options here.', 'bogoworkshop-tools'); ?></p>
            <!-- Later: add form fields/settings for Slide Menu here -->
        </div>
        <?php
    }
}*/
// -----------------------------------------------
if ( file_exists(__DIR__ . 'includes/funnels/funnels.php') ) {
    require_once __DIR__ . 'includes/funnels/funnels.php';
}
// Centralized menu configuration
function bw_tools_get_menu_items() {
    return [
        'general' => [
            'page_title' => 'General',
            'menu_title' => 'General',
            'callback'   => 'bw_tools_settings_general',
            'is_main'    => true,
        ],
        'login-visibility' => [
            'page_title' => 'Login Visibility CSS',
            'menu_title' => 'Login Visibility CSS',
            'callback'   => 'bw_tools_settings_login_visibility',
        ],
        'woocommerce' => [
            'page_title' => 'WooCommerce',
            'menu_title' => 'WooCommerce',
            'callback'   => 'bw_tools_settings_woocommerce',
        ],
        'shortcodes' => [
            'page_title' => 'Shortcodes',
            'menu_title' => 'Shortcodes',
            'callback'   => 'bw_tools_settings_shortcodes',
        ],
        'jetpack' => [
            'page_title' => 'Jetpack',
            'menu_title' => 'Jetpack',
            'callback'   => 'bw_tools_settings_jetpack',
        ],
        'scheduler' => [
            'page_title' => 'Scheduler',
            'menu_title' => 'Scheduler',
            'callback'   => 'bw_tools_settings_scheduler',
        ],
        'login' => [
            'page_title' => 'Login/Redirects',
            'menu_title' => 'Login/Redirects',
            'callback'   => 'bw_tools_settings_login',
        ],
        'qr' => [
            'page_title' => 'QR Code',
            'menu_title' => 'QR Code',
            'callback'   => 'bw_tools_settings_qr',
        ],
        'tools' => [
            'page_title' => 'Tools',
            'menu_title' => 'Tools',
            'callback'   => 'bw_tools_settings_tools',
        ],
        'login-registration' => [
            'page_title' => 'Login/Registration Settings',
            'menu_title' => 'Login/Registration',
            'callback'   => 'bw_tools_settings_login_registration',
        ],
      /* 'slide-menu' => [
            'page_title' => 'Slide Menu Settings',
            'menu_title' => 'Slide Menu',
            'callback'   => 'bw_tools_settings_slide_menu', // <-- This is now always defined
        ],*/
        'vacation-mode' => [
        'page_title' => 'Vacation Mode',
        'menu_title' => 'Vacation Mode',
        'callback'   => 'bw_tools_settings_vacation_mode',
        ]
    ];
}

// Register admin menu and all plugin submenus.
add_action('admin_menu', function() {
    $menu_items = bw_tools_get_menu_items();
    $main_slug = 'bogoworkshop-tools';
    $capability = 'manage_options';

    // Add main menu
    add_menu_page(
        'BogoWorkshop Tools',
        'Bogo Tools',
        $capability,
        $main_slug,
        $menu_items['general']['callback'],
        'dashicons-admin-tools'
    );

    // Add all submenu items
    foreach ($menu_items as $key => $item) {
        $slug = ($key === 'general') ? $main_slug : $main_slug . '-' . $key;
        add_submenu_page(
            $main_slug,
            $item['page_title'],
            $item['menu_title'],
            $capability,
            $slug,
            $item['callback']
        );
    }
});

// Load admin panel CSS/JS on BogoWorkshop Tools pages.
add_action('admin_enqueue_scripts', function($hook) {
    if (strpos($hook, 'bogoworkshop-tools') !== false) {
        wp_enqueue_style(
            'bw-admin-style',
            plugin_dir_url(__FILE__) . 'assets/css/admin-style.css',
            [],
            '1.2.0'
        );
       /* wp_enqueue_style(
            'bw-admin-style',
            plugin_dir_url(__FILE__) . '/includes/output-css.php',
            [],
            '1.2.0'
        );*/
        wp_enqueue_script(
            'bw-admin-script',
            plugin_dir_url(__FILE__) . 'assets/js/admin-script.js',
            ['jquery'],
            '1.2.0',
            true
        );
       /* if (strpos($hook, 'slide-menu') !== false) {
            wp_enqueue_style('wp-color-picker');
            wp_enqueue_script('wp-color-picker');
        }*/
    }
});

// Load frontend plugin styles and scripts globally.
function bw_tools_enqueue_frontend_assets() {
    wp_enqueue_style(
        'bogy-frontend-style',
        plugin_dir_url(__FILE__) . 'assets/css/frontend.css',
        [],
        '1.2.0'
    );
    wp_enqueue_script(
        'bogy-frontend-js',
        plugin_dir_url(__FILE__) . 'assets/js/frontend.js',
        ['jquery'],
        '1.2.0'
    );
}
add_action('wp_enqueue_scripts', 'bw_tools_enqueue_frontend_assets');

// Register slide menu options on activation.
/*
register_activation_hook(__FILE__, 'bw_tools_activate_slide_menu');
function bw_tools_activate_slide_menu() {
    add_option('slide_menu_position', 'left');
    add_option('slide_menu_width', 300);
    add_option('slide_menu_level1_normal', '#ffffff');
    add_option('slide_menu_level1_hover', '#3498db');
    add_option('slide_menu_level1_active', '#2980b9');
    add_option('slide_menu_level2_normal', '#f5f5f5');
    add_option('slide_menu_level2_hover', '#3498db');
    add_option('slide_menu_level2_active', '#2980b9');
    add_option('slide_menu_level3_normal', '#e9e9e9');
    add_option('slide_menu_level3_hover', '#3498db');
    add_option('slide_menu_level3_active', '#2980b9');
    add_option('slide_menu_bg_color', '#2c3e50');
}


*/
				

This code integrates well into the plugin or theme, allowing for easy customization of the number of posts displayed while following WordPress coding standards and best practices.

Register an account to save your snippets or go Pro to get more features.