Portfolio views: 149
Zach Sykes

Hello, I’m Zach.

WordPress developer, 3D designer, marketer, and musician. I blend technical SEO, clean builds, 3D visuals for architecture and products, and gamification so sites feel fast, human, and just a little bit fun.

About Zach

I’m a full-stack web tinkerer with a growth mindset: custom WordPress builds, inventory/data integrations, and the kind of technical SEO that quietly makes everything perform better.

I also create 3D design work for architecture and websites—from product renders and interior concepts to tiny homes and custom hardware—so the digital experience actually matches what people see in the real world.

WordPress / PHP90%
Technical SEO88%
Gamification / UX84%
JavaScript80%

Code Snippets (PHP / WordPress)

A few small slices of how I wire WordPress, data flows, and backend logic together.

Custom WP_Query for Featured Projects

Pulls only “featured” projects for the homepage, keeping the rest in the archive.

<?php
$args = [
  'post_type'      => 'project',
  'posts_per_page' => 3,
  'meta_key'       => 'is_featured',
  'meta_value'     => '1',
];

$featured = new WP_Query( $args );

if ( $featured->have_posts() ) :
  while ( $featured->have_posts() ) : $featured->the_post();
    get_template_part( 'template-parts/content', 'project-card' );
  endwhile;
  wp_reset_postdata();
endif;
?>

Safe Option-Based View Counter

Lightweight, DB-backed view counting using get_option / update_option.

<?php
function zs_increment_views( $key ) {
  $count = (int) get_option( $key, 0 );
  $count++;
  update_option( $key, $count );
  return $count;
}

// On a template:
$views = zs_increment_views( 'zs_home_views' );
echo 'Portfolio views: ' . number_format_i18n( $views );
?>

Sanitized Feedback Handler

Processes a front-end form, sanitizes input, stores in a single option as an array.

<?php
function zs_handle_portfolio_feedback() {
  check_admin_referer( 'zs_feedback' );

  $rating   = isset( $_POST['rating'] )
    ? sanitize_text_field( $_POST['rating'] )
    : '';
  $feedback = isset( $_POST['feedback'] )
    ? sanitize_textarea_field( $_POST['feedback'] )
    : '';

  $stored = get_option( 'zs_feedback', [] );
  if ( ! is_array( $stored ) ) {
    $stored = [];
  }

  $stored[] = [
    'time'       => current_time( 'mysql' ),
    'rating'     => $rating,
    'feedback'   => $feedback,
    'ip'         => $_SERVER['REMOTE_ADDR'] ?? '',
    'user_agent' => $_SERVER['HTTP_USER_AGENT'] ?? '',
  ];

  update_option( 'zs_feedback', $stored );
}
add_action( 'admin_post_nopriv_zs_feedback', 'zs_handle_portfolio_feedback' );
add_action( 'admin_post_zs_feedback',        'zs_handle_portfolio_feedback' );
?>

JSON Endpoint for Inventory

Simple custom endpoint to expose cleaned inventory data as JSON.

<?php
function zs_register_inventory_endpoint() {
  add_rewrite_rule(
    '^inventory-json/?$',
    'index.php?zs_inventory_json=1',
    'top'
  );
}
add_action( 'init', 'zs_register_inventory_endpoint' );

function zs_inventory_query_var( $vars ) {
  $vars[] = 'zs_inventory_json';
  return $vars;
}
add_filter( 'query_vars', 'zs_inventory_query_var' );

function zs_inventory_template_redirect() {
  if ( get_query_var( 'zs_inventory_json' ) ) {
    $data = zs_get_inventory_data(); // custom parser
    wp_send_json( $data );
  }
}
add_action( 'template_redirect', 'zs_inventory_template_redirect' );
?>

Photography

A visual story layer—real shots, real light, one frame at a time.

No portfolio photos are configured yet. Use your Dashboard → Photography Management to build the list.

5 / 5
★★★★★
Based on 3 reviews.
★★★★★ 5/5
Hello, Add zachsykesportfolio.site website to SEODIRECTORY fort a better position in Web Search results order and to get an improvement in traffic: https://seodir.pro
★★★★★ 5/5
I love how smooth this portfolio site runs as a WordPress site.
★★★★★ 5/5
This is a Great Portfolio Site. I really enjoyed looking through it. Thank you!