Many helper for wordpress theme development.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
action
admin
assets
custom
gutenberg
menu
polylang
session
woocommerce
Assets.php
Helper.php
LICENSE
Menus.php
Post.php
README.md
Theme.php
User.php
View.php
bower.json
composer.json

README.md

creative-workflow/lib-wordpress

Setup

bower install --save creative-workflow.sass
bower install --save creative-workflow.php
bower install --save creative-workflow.wordpress

or

composer require creative-workflow/sass
composer require creative-workflow/php
composer require creative-workflow/wordpress

or

git submodule add https://github.com/creative-workflow/lib-wordpress.git ./wordpress/wp-content/themes/child/lib/cw/wp
git submodule add https://github.com/creative-workflow/lib-php.git ./wordpress/wp-content/themes/child/lib/cw/php
git submodule add https://github.com/creative-workflow/lib-sass.git ./wordpress/wp-content/themes/child/lib/cw/sass

functions.php

<?php

define('CW_LIB_FOLDER',           __DIR__ . '/lib');
define('CW_DIVI_MODULES_FOLDER',  __DIR__ . '/modules');
define('CW_WP_SHORTCODES_FOLDER', __DIR__ . '/shortcodes');

foreach(glob(__DIR__ . '/initializers/*.php') as $file)
  require $file;

initializers/

01_autoload.php
<?php

require CW_LIB_FOLDER.'/cw/php/core/Autoloader.php';

cw\php\core\Autoloader::registerNamespaceLoader(
                            CW_LIB_FOLDER,
                            CW_DIVI_MODULES_FOLDER
                          );

03_options.php
<?php

global $wpOptions;

$wpOptions = new \cw\wp\admin\Options('child_options');

$wpOptions->adminBarName('Page-Options')
             ->typeText('global_footer_post_id',
                        'ID des Footer-Posts (Divi-Bibliothek)')

             ->typePlain('color_info',
                         'Farbinfo',
                         '<div class="theme-color green">
                           <div class="color-monitor" style="background-color: #72ac4d"></div>
                           <b>hex:</b> #72ac4d <br>
                           <b>rgb:</b> rgba(114, 172, 77, 1)
                         </div>');
04_assets.php
<?php

global $wpOptions, $jQuery, $wpAssets;

$jQuery   = \cw\php\js\jQuery::getInstance();
$wpAssets = \cw\wp\Assets::getInstance();

$wpAssets->scripts()
            ->add('main-js', 'js/main.js', ['jquery'], 1, true)
            ->inline('main-js', $wpOptions->toJs())
            ->jqReady(
                $jQuery->getScript(
                  $wpAssets->expand('js/app/loader.js')
                )
              )
            ->replaceJquery('//ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js')
            ->removeEmojiScript()
            ->remove(
              'google-maps-api',
              'divi-fitvids',
              'waypoints',
              'magnific-popup',
              'hashchange',
              'salvattore',
              'easypiechart',
              'magnific-popup',
              'wp-embed'
            );


$wpAssets->styles()
            ->addParent()
            ->addAdmin('eve-admin-css', 'admin.css')
            ->conditional(function($wpAssests){
              if(!current_user_can( 'update_core' )) // no admin
                $wpAssests->remove('dashicons');
            });

$wpAssets->theme()
            ->touchAfterPostUpdated() // can be used for browser-sync reload
            ->addFooterContentJs($jQuery); // when will render onReady content when __toString is called
06_menu.php
<?php
$childMenu = new \cw\wp\Menus();

$childMenu->addMenu('footer-1-menu')
          ->addMenu('footer-2-menu')
          ->addMenu('footer-3-menu');
07_custom_post_types.php
<?php

$postType = new \cw\wp\custom\PostType('job_post');
$postType->typePage()
         ->isPublic()
         ->slug('jobs')
         ->hasArchive(false)
         ->isHierarchical(false)
         ->isPubliclyQueryable()
         ->showInUi()
         ->showInMenu()
         ->supportsTitle()
         ->supportsEditor()
         ->supportsThumbnail()
         ->supportsRevisions()
         ->supportsPageAttributes()
         ->supportsPostFormats()
         ->menuPositionBelowPosts()
         ->name('Job-Board')
         ->singularName('Stellenanzeige')
         ->menuName('Job-Board')
         ->labelAddNew('Anzeige erstellen')
         ->adminBarName('Job-Board')
         ->addMetaBox(
             (new \cw\wp\custom\MetaBox('task'))
               ->title('Aufgaben')
               ->typeHtml()
         )
         ->publish();

$taxanomy = new \cw\wp\custom\Taxanomy('job_place');
$taxanomy->setObjectType($postType)
         ->isHierarchical(false)
         ->showInUi()
         ->showAdminColumn()
         ->queryVar(true)
         ->slug('place')
         ->name('Standorte')
         ->publish();

$taxanomy = new \cw\wp\custom\Taxanomy('job_category');
$taxanomy->setObjectType($postType)
         ->isHierarchical(false)
         ->showInUi()
         ->showAdminColumn()
         ->queryVar(true)
         ->slug('category')
         ->name('Kategorien')
         ->publish();

$taxanomy = new \cw\wp\custom\Taxanomy('job_position');
$taxanomy->setObjectType($postType)
         ->isHierarchical(false)
         ->showInUi()
         ->showAdminColumn()
         ->queryVar(true)
         ->slug('position')
         ->name('Positionen')
         ->publish();
hallo-world/css/module.sass
@import "variables"

@import "mixins/css/css3"
@import "mixins/css/positioning"
@import "mixins/helper/helper"

@import "mixins/grid/mediaqueries"
@import "mixins/grid/grid"

@import "mixins/wordpress/divi"
@import "mixins/wordpress/post"


+custom-divi-module('cw-module-hallo-world')
  .image
    display: none
    +min-width-sm
      +block
      +absolute
      right: -40px
      bottom: 0

  .content-wrapper
    [...]