Development Notes

  • 190602~190608

    • Issues and discoveries:
      • q-Translate-x is out of date and support, need to be replaced
      • The theme default menu has the fully expanded issue in mobile mode
      • The Timely Calendar widget doesn’t seem to be responsive?? seems to have a lot of bloated advertisements.
      • The theme default slider doesn’t switch language.
        • Only support slides based on post or post category.
        • It doesn’t switch the post-based slides based on different language.
        • To investigate solutions
        • To discuss do we need to have article behind the slide images (clicking image and go to an article). The old website just uses static pictures.
      • No easy way to turn on breadcrumb for wiki
    • Created fresh wp/theme at
      • Installed theme: Catch Kathmandu
      • Installed the following plugin
        • Breadcrumb NavXT
        • Max Mega Menu: Use this menu to replace theme default to addresses the “mobile menu fully expanded” issue.
        • Ploylang: Replacing q-Translate-x because it’s out of date and out of support
        • The Events Calendar: Not tested and worked on.
        • TinyMCE Advanced: better usage
        • Yada Wiki: For simple wiki functionality
        • Yoast SEO
    • Configured theme
        • Logo
        • Default content display no side bar
    • Configured Max Mega Menu
      • Style the menu bar, center, height, color…ect.
      • Turn it on in when setup the menu item, it will take over theme default.
      • The menu position used in the theme is “Secondary menu”
    • Configured Ploylang
      • Added language English and Chinese Taiwan
      • Turn on “custom post type and taxonomy”  in setting so language switcher show up in Yada Wiki.
      • Added language switcher to “top right bar”
    • Configured Yada Wiki
      • Do not enable Gutenberg Editor
      • The TynyMCS Advanced editor kicks in. It has wiki buttons and all that, pretty nice.
    • Configured Breadcrumb NavXT
      • In General
        • unchecked “Home Breadcrumb” – This will disable showing the home as breadcrumb root.
      • In Post Type
        • uncheck “Wiki Archive Display” – This take out archive page in breadcrumb
      • No satisfactory breadcrumb behavior based on wiki category or taxonomy. Need to make wiki page hierarchical.
    • Created Main/主頁 in pages
      • Discovered slide issues when creating slides
        • Created posts for main slides in pair for both en/zh.
        • Created post category pair for inclusion by slides for both en/zh.
        • The slides doesn’t switch based on languages. Cannot find a solution or fix.
      • Investigated and found another slide widget which seemed to work. Smart 3 slider.
    • Created menu
      • Turn on Max Mega Menu
      • Need one menu per language, they are separated
      • In the menu edit page, need to turn on wiki related options in screen options (on top) so the wiki pages can be used to create menu
      • Created landing pages for all the menu entries for both languages.
    • Customize wiki page to become hierarchical. I.e., support parent page functionality
      • allowed setting of parent page
      • setup breadcrumbs based on parent/child relationship
    • More tasks
      • Finalize slides
      • Test and finalize Calendar
      • Investigate removal of archive pages (wiki) – 404 instead
      • Investigate fine grained user access management.
      • Integration with class registration system.
      • Investigate plugins for three links of cultivation
      • Investigate content block


    • Clean up tables
      • Use plugin first (if not working, drop from database)
    • Researched calendar widgets: looking for simple, responsive, multi-lingual
      • xxx My Calendar widget doesn’t support multi-lingual
      • ??? Event Calendar WD – Responsive Event Calendar plugin, need to verify if support multi-lingual
    • Researched hotspot widgets for three links of cultivation:  Draw Attention seems promising.
    • Researched fine grained user access control
      • Restrict User Access – Membership Plugin with Force
      • Capability Manager Enhanced – WordPress plugin |
    • Width of content area is controlled by the following in “responsive.css”
    • @media screen and (max-width: 1344px) {
      .site {
      width: 1220px;
      #primary {
      width: 700px;
      #site-title {
      font-size: 32px;
      @media screen and (max-width: 1280px) {
      .site {
      width: 1100px;
      #primary {
      width: 620px;
      #secondary {
      width: 360px;
      #secondary .widget {
      padding: 20px 30px;
      #secondary .widget.widget_catchkathmandu_social_widget {
      padding: 20px 30px 10px;
      #site-title {
      font-size: 28px;
      font-size: 2.8rem;
      .container {
      padding: 0 40px;
    • Created clean installation again with all the essential plugins
      • All the main tables
    • Step2:Added Smart Slider 3, capability manager enhanced


    • Step3: Researched and Added “Peter’s Login Redirect
    • Created db dump after step3
    • Researched Calendar plugins
      • “All-in-one Calendar by”
        • ISSUE: doesn’t filter by language.
        • Reasonable features and styles
      • “The Events Calendar”
        • ISSUE: Recurring events in pro version only
        • ISSUE: Use shortcode to embed calendar in pro version only
      • Modern event calendar lite
        • Working properly with multiple languages
        • Not ideal style, too complicated
        • Some recent, concerning feedback
      • “My Calendar”
        • ISSUE: doesn’t seem to support multiple languages
        • reasonable look and feature
      • “Event Calendar WD”
        • ISSUE: recurring events in PRO version only
      • “Event Calendar – Responsive Calendar”
        • ISSUE:recurring events in PRO version only
      • “Spiffy Calendar”
        • ISSUE: doesn’t seem to be language sensitive
    • Determined to use “Modern event calendar lite
      • Explored different configurations.
      • We need 3 categories: Dharma Events, Special Events, Classes
      • We can use full calendar for the “Dharma Events/Calendar” with monthly view.
      • We can use list view classic for landing page for “Dharma Events” with filter “Dharma Events”.
      • We can probably use list view for “Dharma Classes” as well.


    • Change style for language chooser – This will make the language chooser displayed horizontally.
    • .widget_polylang ul { margin: 0; }
      .widget_polylang ul li
      display: inline; /* horizontal list, use "list-item" or other appropriate value for vertical list */
      list-style-type: none; /* use "initial" or other to enable bullets */
      margin: 0 5px 0 0; /* adjust spacing between items */
      opacity: 0.5;
      -o-transition: 1s ease opacity;
      -moz-transition: 1s ease opacity;
      -webkit-transition: 1s ease opacity;
      transition: 1s ease opacity;
    • Researched and customized the theme
      • The need: We decided to turn off the right hand side bar in all pages (usually takes widget and displays meta information). This bar takes roughly 1/3 of the page width and leave 2/3 for the left hand side for content area. When turned off, the theme doesn’t adjust accordingly and still leave only 2/3 of the page width for content area to work with.
      • Need to customize style.css and responsive.css in the theme files
      • The proper way is to create a child theme to isolate the customization.
      • Create child theme
        • Installed plugin “Child theme wizard”
        • In the Tools menu select and kick off “Child theme wizard”
        • Create theme CTZen as child theme of “Catch Kathmandu”
        • Need to enter site identity, logo…
        • Tweak the css for margin/padding for header and menu bar in Additional CSS screen .
        • !!! Need to assign the menu display location again for Max Mega Menu again for all language versions. Otherwise the menu will not be displayed properly.
        • Need to enqueue the “/css/responsive.css” to reflect page width in responsive mode for different device screens.
        • In “functions.php” do the following
          • function your_theme_enqueue_styles() {$parent_style = ‘parent-style’;wp_enqueue_style( $parent_style,
            get_template_directory_uri() . ‘/style.css’);wp_enqueue_style( ‘child-style’,
            get_stylesheet_directory_uri() . ‘/style.css’,
            );$parent_style1 = ‘catchkathmandu-responsive’;wp_enqueue_style( $parent_style1,
            get_template_directory_uri() . ‘/css/responsive.css’);wp_enqueue_style( ‘child-responsive’,
            get_stylesheet_directory_uri() . ‘/css/responsive.css’,
            }add_action(‘wp_enqueue_scripts’, ‘your_theme_enqueue_styles’);
    • Researched plugins for user role/capability and content access control
      • Researched PressPermit for advanced access control but the desired function was not in free version
        • Will stay with the features provided by Capability Manager Enhanced. Stop further research.
          • The limitation is the general Editor can edit published personal wiki(but not the private ones). This is probably acceptable for now.
          • It’s still useful to make certain content readable only for registered users.
      • Researched plugin “Groups”
        • Provide infrastructure group for access control
        • Can work with custom post types
        • Can restrict access “per page”
          • For example, viewable only for registered users. This can be useful.
          • If a menu entry is based on a restricted page, then it will not be displayed.
        • Restrict access based on category and taxonomy is in Pro version.
        • It seems to have access control only for READ operation, not edit…
        • !!! Need to compare with PressPermit if we need this types of functions.
      • Researched “Content control”
        • Control read access to content
        • Restriction based on category, taxonomy…
        • With warning message and redirect (e.g. login page)
        • ISSUE: doesn’t work with custom post type
      • Researched “If menu”
        • This is useful if we need to control menu items based on user roles….
        • This can be used for menu entries that access internal content
      • Researched “Advanced Access Manager”
        • This is the plugin with full blown features
          • Includes role management
          • capability management
          • works with custom post types
          • support inheritance
          • login redirect…
          • both front-end and back-end control
        • The free version supports creating access policies for individual content, not by categories or taxonomies.
        • !!! To compare “User Role Editor”, another full featured plugin.
      • Researched “User Roles and capabilities”
        • Similar to Capability Manager Enhanced”
        • Can create and assign multiple roles
        • ISSUE: Doesn’t detect wiki pages
      • Researched “Member” plugin
        • Role manager that supports multiple roles assignment
        • Content access control is embedded inside content edit pages. Doesn’t seem to support category though.
        • No rule/category/taxonomy based restriction, at least not in free version
      • Researched “Restrict User Access”
        • This seems to have all the features we need.
        • Determined to go with it and replaced “Capability Manager Enhanced” with it.
        • Might still need plugin for multiple roles assignment
    • Researched grid plugin
      • Comparable to section and advanced column widget in Ultimate Gutenberg.
      • Can specify how many column with pre-defined width ratio.
      • Has a grid designer for more complicated layout
      • Can specify the height of the section
      • Doesn’t allow highlight the border
    • Created Baseline-1
      • Tested all the necessary plugins identified so far, all is stable
      • Created database dump ctzen_baseline_1_190704
      • Installed plugins
      • Ready to move it Siteground
    • Some useful plugins for future use
      • Role Includer – assign multiple roles to a user
      • If Menu – visibility control for menu items
      • Grids – simple yet advanced grid layout
      • Yoast SEO – Tool box for search engine optimization
      • Draw Attention – Clickable image area (need this for three links of cultivation)
    • Created example home page


    • Created baseline-2 with minor updated
    • Refresh site “” with baseline-2
      • Cannot move to “” because WP 5.2.2 requires php 5.6 and up. Changing PHP version might impact the current operation site.
      • Use site “”
      • Leave site “” alive for now
      • Still need to perform minor configuration to bring up baseline-2
    • Give status update to the team
    • Created training video for “Create Calendar and Events”
    • Created training video for “Create and Maintain Wiki pages”


  • Start web content development
    • Finished task D001 – Develope pages under “About Us”
      • Temporarily keep the link to website wiki here in the page for development.
    • Finished task D002 – Develope pages under “Classes/Class Description”
    • Finished task D003 – Develope pages under “Dharma Events/Event Description”
    • Finished task D004 – Develope pages under “Dharma Gems” (pages under “Dharma Gems/Chung Tai Koans” is being worked on by others)
    • Finished task D005 – Develope pages under “Support US” (some pending issues)
    • Finished task D006 – Develope pages under “FAQ”


  • Update plugin Yada Wiki from 3.2.1 to 3.2.2
    • Manually updated the file “~inc/functions-register-cpt.php” to port the customization (turned on parent page support in page attribute support)


Custommed CSS

/* hide navigation to previous and next page in post page */
.nav-previous, .nav-next{

/* hide title for wiki page
.single article .entry-header{

/* remove space between menu bar and slider for home page */
.page #main{
padding-top: 0px;

/* remove page title */
.page article .entry-header{

/*too much space above logo*/
#header-content { display: none; }
#header-content { padding: 0 ; }
/*logo border*/
#hgroup-wrap { padding-bottom: 5px; }
#site-logo { padding-top: 5px; }

/*space above logo*/
.site { margin-top: 5px; }

/* calendar style adjustments -
ListView-Minimal - remove "view detail"
.col-md-3, .col-sm-3{

/* calendar style adjustments
ListView-Modern - remove "view detail"
.col-md-4m, .col-sm-4{

/* calendar style adjustments - ListView-Modern - remove "event sharing, mail, fb..."

/* Make the featured buttons extend to full page width

margin-left: -33.33%;
margin-right: -33.33%;
@media screen and (max-width: 1344px) {
margin-left: -33.33%;
margin-right: -33.33%;
@media screen and (max-width: 1280px) {
margin-left: -33.33%;
margin-right: -33.33%;
@media screen and (max-width: 1152px) {
margin-left: -33.33%;
margin-right: -33.33%;
@media screen and (max-width: 1024px) {
margin-left: -33.33%;
margin-right: -33.33%;
@media screen and (max-width: 960px) {
margin-left: 0%;
margin-right: 0%;
@media only screen
and (min-device-width : 768px)
and (max-device-width : 1024px)
and (orientation : portrait) {
margin-left: 0%;
margin-right: 0%;
@media screen and (max-width: 767px) {
margin-left: 0%;
margin-right: 0%;
@media screen and (max-width: 640px) {
margin-left: 0%;
margin-right: 0%;
@media screen and (max-width: 560px) {
margin-left: 0%;
margin-right: 0%;
@media only screen
and (min-device-width : 320px)
and (max-device-width : 568px)
and (orientation : landscape) {
margin-left: 0%;
margin-right: 0%;
@media screen and (max-width: 480px) {
margin-left: 0%;
margin-right: 0%;
@media screen and (max-width: 360px) {
margin-left: 0%;
margin-right: 0%;

.widget-area#fourth {
color: #000000;
text-align: right;

#site-generator.container {

#site-generator .copyright {
text-align: center;
float: none;
width: 100%;

#site-generator .site-info {
padding-top: 0;
padding-bottom: 15px;

#supplementary.two {
padding-top: 15px;
padding-bottom: 0;

#supplementary #text-2 {
margin-bottom: 0;

#supplementary #text-3 {
margin-bottom: 0;

#supplementary p {
margin-bottom: 0;

#supplementary #media_image-2 {
margin-bottom: 0;

padding: 0;
margin: 0;
padding: 0;
margin: 0;

!!!! 191020 gone live !!!!

Armin user: ctzen

Site URL: “”

WordPress URL: “”

WP directory on SiteGround: public_html/sunnyvale_wp

Note: The directory was “public_html/sunnyvale”, but it coincide with the directory that subdomain “” points to. That prevents the setup of a redirect rule “” –> “”. As a result, we moved the wp installation directory to “public_html/sunnyvale_wp”.

The directory “public_html/sunnyvale” was kept empty and a text file in it to warn people not to use that directory.


Google clean up and search engine optimization:

  1. Mapped “” to “” so the cached links could come to new site.
    • “.htaccess” was updated at “public_html” for
    • Rules for the new mapping was place inside. It was placed manually because Siteground’s redirection tool has some caching issues that prevented it from happening
    • RewriteEngine on
      AddHandler application/x-httpd-php52 .php .php5 .php4 .php3
      RewriteCond %{HTTP_HOST} ^ctzen\.org$ [OR]
      RewriteCond %{HTTP_HOST} ^www\.ctzen\.org$
      RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
      RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
      RewriteRule ^zen\/?(.*)$ "http\:\/\/Zen\.ctzen\.org\/$1" [R=301,L]
      RewriteRule ^sunnyzen\/?(.*)$ "http\:\/\/sunnyzen\.ctzen\.org\/$1" [R=301,L]
      RewriteRule ^sunnyvale\/?(.*)$ "http\:\/\/sunnyvale\.ctzen\.org\/$1" [R=301,L]
  2. Used Google URL removal tools to remove old urls:
  3. Put in indexing request for top level URLs from New sites
  4. Installed Yaost SEO
  5. Submit sitemap.xml “” to google