Files
prautoblogger/templates/admin/metabox-generation-info.php
Terence Ong 68c6f67bcf Initial commit: AutoBlogger v0.1.0
WordPress plugin that auto-researches topics from Reddit, generates
SEO-optimized articles via OpenRouter LLMs, runs them through a chief
editor agent, and publishes on a daily schedule.

Includes:
- Full generation pipeline (collect → analyze → score → generate → review → publish)
- Cost tracking and budget enforcement
- Admin UI: settings, review queue, metrics, activity log
- CI/CD pipeline (GitHub Actions → WordPress REST deploy)
- Unit test suite (PHPUnit + Brain Monkey)
- Structured logging with configurable verbosity

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 16:10:27 +07:00

76 lines
3.0 KiB
PHP
Executable File

<?php
/**
* Post metabox template showing AutoBlogger generation metadata.
*
* @see admin/class-post-metabox.php — Renders this template.
*
* @var WP_Post $post The current post.
*/
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
$meta = [
'topic' => get_post_meta( $post->ID, '_autoblogger_topic', true ),
'type' => get_post_meta( $post->ID, '_autoblogger_article_type', true ),
'model' => get_post_meta( $post->ID, '_autoblogger_model_used', true ),
'pipeline' => get_post_meta( $post->ID, '_autoblogger_pipeline_mode', true ),
'verdict' => get_post_meta( $post->ID, '_autoblogger_editor_verdict', true ),
'editor_notes' => get_post_meta( $post->ID, '_autoblogger_editor_notes', true ),
'quality_score' => get_post_meta( $post->ID, '_autoblogger_quality_score', true ),
'seo_score' => get_post_meta( $post->ID, '_autoblogger_seo_score', true ),
'generated_at' => get_post_meta( $post->ID, '_autoblogger_generated_at', true ),
'keywords' => get_post_meta( $post->ID, '_autoblogger_target_keywords', true ),
];
?>
<div class="autoblogger-metabox">
<p>
<strong><?php esc_html_e( 'Generated:', 'autoblogger' ); ?></strong>
<?php echo esc_html( $meta['generated_at'] ?: __( 'Unknown', 'autoblogger' ) ); ?>
</p>
<p>
<strong><?php esc_html_e( 'Topic:', 'autoblogger' ); ?></strong>
<?php echo esc_html( $meta['topic'] ?: '—' ); ?>
</p>
<p>
<strong><?php esc_html_e( 'Type:', 'autoblogger' ); ?></strong>
<?php echo esc_html( ucfirst( $meta['type'] ?: 'article' ) ); ?>
</p>
<p>
<strong><?php esc_html_e( 'Model:', 'autoblogger' ); ?></strong>
<?php echo esc_html( $meta['model'] ?: '—' ); ?>
</p>
<p>
<strong><?php esc_html_e( 'Pipeline:', 'autoblogger' ); ?></strong>
<?php echo esc_html( 'multi_step' === $meta['pipeline'] ? __( 'Multi-step', 'autoblogger' ) : __( 'Single-pass', 'autoblogger' ) ); ?>
</p>
<p>
<strong><?php esc_html_e( 'Editor Verdict:', 'autoblogger' ); ?></strong>
<span class="autoblogger-verdict-<?php echo esc_attr( $meta['verdict'] ?: 'unknown' ); ?>">
<?php echo esc_html( ucfirst( $meta['verdict'] ?: __( 'Unknown', 'autoblogger' ) ) ); ?>
</span>
</p>
<?php if ( $meta['quality_score'] ) : ?>
<p>
<strong><?php esc_html_e( 'Quality:', 'autoblogger' ); ?></strong>
<?php echo esc_html( number_format( (float) $meta['quality_score'] * 100, 0 ) ); ?>%
&nbsp;|&nbsp;
<strong><?php esc_html_e( 'SEO:', 'autoblogger' ); ?></strong>
<?php echo esc_html( number_format( (float) $meta['seo_score'] * 100, 0 ) ); ?>%
</p>
<?php endif; ?>
<?php if ( $meta['editor_notes'] ) : ?>
<p>
<strong><?php esc_html_e( 'Editor Notes:', 'autoblogger' ); ?></strong><br>
<?php echo esc_html( $meta['editor_notes'] ); ?>
</p>
<?php endif; ?>
<?php if ( $meta['keywords'] ) : ?>
<p>
<strong><?php esc_html_e( 'Keywords:', 'autoblogger' ); ?></strong>
<?php echo esc_html( implode( ', ', json_decode( $meta['keywords'], true ) ?: [] ) ); ?>
</p>
<?php endif; ?>
</div>