Files
Portfolio-2026/single.php
T
Keith SolomonandClaude Opus 4.7 e2f6270717 Release as SoloFrame Evo (#2)
* docs: Add onboarding documentation for new developers

Add four comprehensive guides to help new developers get started
with the VDI-Starter-v5 WordPress theme:

- docs/getting-started.md: Setup from zero, local WordPress options,
  env config, theme activation warnings, troubleshooting
- docs/architecture.md: Bootstrap flow, 7 architectural layers,
  namespace conventions, WP hooks cleanup, enqueue system, theme.json
- docs/creating-blocks.md: Step-by-step ACF block creation tutorial,
  helper functions, parent-child patterns, Tailwind integration
- docs/reference.md: Hooks/filters tables, design tokens, CSS import
  tree, JS module graph, class reference, CLI commands, deployment

Update README.md: trim deep-dive API docs (moved to reference),
add documentation links section, fix CSS paths (views/styles/ →
styles/), add missing contact-info block, fix deployment filename
typo (wpengine,yml → wpengine.yml), add backToTop.js and
enqEditorAssets(), add namespace conventions table.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* docs: language graph

* docs: Update readme

* 🔵 other: Rename project and publish

* 🔵 other: Update .gitignore
2026-07-29 15:52:21 -05:00

87 lines
2.0 KiB
PHP

<?php
/**
* Single Posts
*
* @package SoloFrameEvo
* @since 1.0.0
*/
namespace SoloFrameEvo;
get_header();
// Determine classes based on sidebar presence
if ( hasSidebar() ) {
$classes = 'container grid grid-cols-1 lg:grid-cols-4 gap-8 xl:gap-16 my-section mx-auto';
$clsEntry = 'lg:col-span-3';
} else {
$classes = 'container my-section lg:my-0 mx-auto';
}
?>
<article class="<?php echo esc_attr( $classes ); ?>">
<div class="entry-content <?php echo esc_attr( $clsEntry ); ?>">
<?php
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
?>
<div class="post-title mb-0">
<h1 class="mb-0"><?php the_title(); ?></h1>
</div>
<div class="post-meta text-14px italic mb-6">
<div class="">
<span class="post-date">Posted: <?php the_date(); ?></span> | <span class="post-author">Posted by: <?php echo esc_html( ucfirst( get_the_author() ) ); ?></span>
</div>
<div class="">
<span class="post-categories">
<?php
$categories = get_the_category();
if ( ! empty( $categories ) ) {
echo '<span>Posted in: ';
foreach ( $categories as $ct ) {
echo '<a href="' . esc_url( get_category_link( $ct->cat_ID ) ) . '">' . esc_html( $ct->name ) . '</a>';
if ( count( $categories ) > 1 && $ct !== end( $categories ) ) {
echo ', ';
}
}
echo '</span>';
}
?>
</span>
|
<span class="post-tags">
<?php
$tags = get_the_tags();
if ( ! empty( $tags ) ) {
echo '<span>Tagged: ';
foreach ( $tags as $tg ) {
echo '<a href="' . esc_url( get_tag_link( $tg->term_id ) ) . '">' . esc_html( $tg->name ) . '</a>';
if ( count( $tags ) > 1 && $tg !== end( $tags ) ) {
echo ', ';
}
}
echo '</span>';
}
?>
</span>
</div>
</div>
<?php
the_content();
}
}
?>
</div>
<?php if ( hasSidebar() ) : ?>
<?php get_sidebar(); ?>
<?php endif; ?>
</article>
<?php get_footer(); ?>