PHP code example of pedalcms / wp-cmf
1. Go to this page and download the library: Download pedalcms/wp-cmf library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
pedalcms / wp-cmf example snippets
/**
* Plugin Name: My Custom Plugin
*/
use Pedalcms\CassetteCmf\Core\Manager;
function my_plugin_init() {
Manager::init()->register_from_array([
// Custom Post Types
'cpts' => [
[
'id' => 'product',
'args' => [
'label' => 'Products',
'public' => true,
'has_archive' => true,
'menu_icon' => 'dashicons-cart',
],
'fields' => [
[
'name' => 'price',
'type' => 'number',
'label' => 'Price ($)',
'min' => 0,
'step' => 0.01,
],
[
'name' => 'stock_status',
'type' => 'select',
'label' => 'Stock Status',
'options' => [
'in_stock' => 'In Stock',
'out_of_stock' => 'Out of Stock',
],
],
],
],
],
// Custom Taxonomies
'taxonomies' => [
[
'id' => 'product_category',
'object_type' => ['product'],
'args' => [
'label' => 'Categories',
'hierarchical' => true,
],
'fields' => [
[
'name' => 'category_color',
'type' => 'color',
'label' => 'Category Color',
'default' => '#0073aa',
],
[
'name' => 'category_icon',
'type' => 'text',
'label' => 'Icon Class',
],
],
],
],
// Settings Pages
'settings_pages' => [
[
'id' => 'store-settings',
'page_title' => 'Store Settings',
'menu_title' => 'Store',
'capability' => 'manage_options',
'icon' => 'dashicons-store',
'fields' => [
[
'name' => 'store_name',
'type' => 'text',
'label' => 'Store Name',
],
[
'name' => 'currency',
'type' => 'select',
'label' => 'Currency',
'options' => [
'USD' => 'US Dollar',
'EUR' => 'Euro',
'GBP' => 'British Pound',
],
],
],
],
],
]);
}
add_action( 'init', 'my_plugin_init' );
Manager::init()->register_from_array([
// Add fields to existing post types
'cpts' => [
[
'id' => 'post', // WordPress built-in
'fields' => [
[
'name' => 'subtitle',
'type' => 'text',
'label' => 'Subtitle',
],
],
],
],
// Add fields to existing taxonomies
'taxonomies' => [
[
'id' => 'category', // WordPress built-in
'fields' => [
[
'name' => 'category_color',
'type' => 'color',
'label' => 'Category Color',
'default' => '#333333',
],
],
],
],
]);
// Load from JSON file
Manager::init()->register_from_json( __DIR__ . '/config.json' );
use Pedalcms\CassetteCmf\CassetteCmf;
// Post meta (CPT fields)
$price = CassetteCmf::get_field( 'price', $post_id );
$price = CassetteCmf::get_field( 'price', $post_id, 'post', 0 ); // With default
// Term meta (taxonomy fields)
$color = CassetteCmf::get_field( 'category_color', $term_id, 'term' );
$color = CassetteCmf::get_field( 'category_color', $term_id, 'term', '#000000' );
// Settings (uses settings page ID as context)
$store_name = CassetteCmf::get_field( 'store_name', 'store-settings', 'settings' );
$currency = CassetteCmf::get_field( 'currency', 'store-settings', 'settings', 'USD' );
CassetteCmf::get_field( string $field_name, int|string $context, string $context_type = 'post', mixed $default = '' )
use Pedalcms\CassetteCmf\CassetteCmf;
// Context-specific methods for convenience
$value = CassetteCmf::get_post_field( 'field_name', $post_id );
$value = CassetteCmf::get_term_field( 'field_name', $term_id );
$value = CassetteCmf::get_settings_field( 'field_name', 'page-id' );
// Post meta (CPT fields)
$price = get_post_meta( $post_id, 'price', true );
// Term meta (taxonomy fields)
$color = get_term_meta( $term_id, 'category_color', true );
// Settings (pattern: {page_id}_{field_name})
$store_name = get_option( 'store-settings_store_name' );
// Global filter for all fields
add_filter( 'CassetteCmf_before_save_field', function( $value, $field_name, $context ) {
// Return modified value, or null to skip saving
return $value;
}, 10, 3 );
// Field-specific filter
add_filter( 'CassetteCmf_before_save_field_price', function( $value ) {
return abs( floatval( $value ) ); // Ensure positive number
} );