<?php
namespace THEME\ViewModel\Archive\Templates;
/**
* Pay attention this is the representation
* of a Term into an Archive contex\t
*
*/
class Archive implements iTemplate {
public function getTermData( $term ) {
return [
'id' => $term->term_id,
'taxonomy' => $term->taxonomy,
'title' => $term->name,
'excerpt' => $term->description,
'link' => get_term_link( $term , $term->taxonomy ),
'parent' => $term->parent,
'meta' => $this->getCustomFields( $term ),
];
}
/**
* Returns acf custom fields for the given term
*
* @param WP_Term $term
* @return array
*/
protected function getCustomFields( $term ) {
$fieldsRetrieved = [];
$fields = get_fields( $term->taxonomy . '_' . $term->term_id );
if( $fields ) {
<?php
namespace THEME\ViewModel\Archive\Templates;
/**
* Pay attention this is the representation
* of a Term into an Archive contex\t
*
*/
class Archive implements iTemplate {
public function getTermData( $term ) {
return [
'id' => $term->term_id,
'taxonomy' => $term->taxonomy,
'title' => $term->name,
'excerpt' => $term->description,
'link' => get_term_link( $term , $term->taxonomy ),
'parent' => $term->parent,
'meta' => $this->getCustomFields( $term ),
];
}
/**
* Returns acf custom fields for the given term
*
* @param WP_Term $term
* @return array
*/
protected function getCustomFields( $term ) {
$fieldsRetrieved = [];
$fields = get_fields( $term->taxonomy . '_' . $term->term_id );
if( $fields ) {
'type' => 'archive',
'infinite' => 'true',
];
}
/**
* Add the data of the current term or post type or author
*
* @return void
*/
protected function setTerm( $object_type = 'WP_Term' ) {
$term = [
'' => [], /// home page
'WP_Term' => $this->term,
'WP_Post_Type' => $this->post_type,
'WP_User' => $this->author,
][ $object_type ];
$this->data['term'] = empty( $term ) ? [] : $this->archiveTemplate->getTermData( $term );
}
/**
* set the posts list as articles array using
* the standard wp_query
*
* AND SET the total pages to data ( lo so qui bisognerebbe architettarlo un mo meglio)
*
* @return void
*/
protected function setArticles() {
// create the query for main contents
$args = [
'paged' => $this->paged,
'post_type' => empty( $this->post_type) ? 'post' : $this->post_type->name,
];
if( !empty( $this->term ) ) {
function __construct( $postTemplate = 'Archive', $archiveTemplate = 'Archive' ) {
$queried_object = get_queried_object();
$obj_type = empty( $queried_object ) ? '' : get_class( $queried_object ) ;
$this->term = ( $obj_type == 'WP_Term' ) ? $queried_object : null;
$this->post_type = ( $obj_type == 'WP_Post_Type' ) ? $queried_object : null;
$this->author = ( $obj_type == 'WP_User' ) ? $queried_object : null;
parent::__construct();
// set the postTemplate (default 'Archive')
$this->postTemplate = $this->postTemplateFactory( $postTemplate );
// set the archiveTemplate (default 'Archive')
$this->archiveTemplate = $this->archiveTemplateFactory( $archiveTemplate );
// add the current term's data
$this->setTerm( $obj_type );
// add the articles to data
$this->setArticles();
// set the components list into property
// $components
$this->initComponents();
// add all the default components
$this->setComponents();
}
/**
* Writes the basic page informations
*/
protected function setPageData(){
$this->data = [
'type' => 'archive',
'infinite' => 'true',
<?php
use THEME\ViewModel\Archive;
use Timber\Timber;
$paged = (get_query_var('paged') && get_query_var('paged') !== 0) ? get_query_var('paged') : 1;
// needed to let Timber read the subfolders
Timber::$dirname = [ 'views' ];
$archiveViewModel = new Archive();
$list = $archiveViewModel->getData();
$list['page'] = $paged;
switch($paged){
case 1 :
Timber::render( 'archive.twig' , $list );
break;
default:
Timber::render( 'archive-paged.twig' , $list );
break;
}
?>
}
break;
}
}
if ( ! $template ) {
$template = get_index_template();
}
/**
* Filters the path of the current template before including it.
*
* @since 3.0.0
*
* @param string $template The path of the template to include.
*/
$template = apply_filters( 'template_include', $template );
if ( $template ) {
include $template;
} elseif ( current_user_can( 'switch_themes' ) ) {
$theme = wp_get_theme();
if ( $theme->errors() ) {
wp_die( $theme->errors() );
}
}
return;
}
<?php
/**
* Loads the WordPress environment and template.
*
* @package WordPress
*/
if ( ! isset( $wp_did_header ) ) {
$wp_did_header = true;
// Load the WordPress library.
require_once __DIR__ . '/wp-load.php';
// Set up the WordPress query.
wp();
// Load the theme template.
require_once ABSPATH . WPINC . '/template-loader.php';
}
<?php
/**
* WordPress View Bootstrapper
*/
define('WP_USE_THEMES', true);
require __DIR__ . '/wp/wp-blog-header.php';
Key | Value |
SERVER_SOFTWARE | nginx/1.26.2 |
REQUEST_URI | /recensioni/ |
USER | nginx |
HOME | /var/lib/nginx |
HTTP_REFERER | https://staging.webnews.it/recensioni |
HTTP_ACCEPT_ENCODING | gzip, br, zstd, deflate |
HTTP_USER_AGENT | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
HTTP_ACCEPT | */* |
HTTP_CONNECTION | close |
HTTP_X_FORWARDED_FOR | 3.145.40.61 |
HTTP_HOST | staging.webnews.it |
HTTP_X_FORWARDED_PORT | 443 |
HTTP_X_FORWARDED_PROTO | https |
REDIRECT_STATUS | 200 |
SERVER_NAME | staging.webnews.it |
SERVER_PORT | 443 |
SERVER_ADDR | 10.50.50.197 |
REMOTE_PORT | 40158 |
REMOTE_ADDR | 10.50.50.12 |
GATEWAY_INTERFACE | CGI/1.1 |
HTTPS | on |
REQUEST_SCHEME | https |
SERVER_PROTOCOL | HTTP/1.0 |
DOCUMENT_ROOT | /data/websites/webnews/web |
DOCUMENT_URI | /index.php |
SCRIPT_NAME | /index.php |
CONTENT_LENGTH | |
CONTENT_TYPE | |
REQUEST_METHOD | GET |
QUERY_STRING | |
SCRIPT_FILENAME | /data/websites/webnews/web/index.php |
FCGI_ROLE | RESPONDER |
PHP_SELF | /index.php |
REQUEST_TIME_FLOAT | 1745663396.7576 |
REQUEST_TIME | 1745663396 |
WP_ENV | staging |
WP_HOME | https://staging.webnews.it |
WP_SITEURL | https://staging.webnews.it/wp |
WP_DEBUG | true |
WP_CACHE | false |
WPLANG | it_IT |
WP_POST_REVISIONS | false |
DB_NAME | webnews |
DB_USER | webnewsUSR |
DB_PASSWORD | M3l4.G4mes.N3ws |
DB_HOST | 127.0.0.1 |
GTM_ID_WEBNEWS | GTM-PV4S3R4X |
GTM_ID_MELABLOG | GTM-PV4S3R4X |
GTM_ID_GAMESBLOG | GTM-PV4S3R4X |
SITE_SPECIAL_TAXONOMY | special |
HTML_PRODUCT_POST_TYPE_SLUG | prodotti |
DISABLE_WP_CRON | true |
ACF_PRO_KEY | b3JkZXJfaWQ9NzQ2MTV8dHlwZT1kZXZlbG9wZXJ8ZGF0ZT0yMDE2LTAyLTA5IDExOjQ5OjE5 |
WP_ALLOW_MULTISITE | true |
MULTISITE | true |
SUBDOMAIN_INSTALL | true |
DOMAIN_CURRENT_SITE | staging.webnews.it |
PATH_CURRENT_SITE | / |
SITE_ID_CURRENT_SITE | 1 |
BLOG_ID_CURRENT_SITE | 1 |
OFFERS_POST_TYPE | post |
OFFERS_LIMIT | 2000 |
AUTH_KEY | E094PtbN,/./X6J)N>X}iRr2X@qzrp<)*n!<1kps=WXH11Ho^1)^#,,/N`RQ%4PA |
SECURE_AUTH_KEY | rek_-EaoK.j{F>G%}^{Kw+npcA[tI&MW0_:3|Liq*E/]U/ve{M`tRW7[,SX-?G|b |
LOGGED_IN_KEY | Y;LL^L-^5a5nG&?I;e[nj0<5<;&pprgWk9Eq-Ozp>H6DZwl)3LUtdxQJ-b*mXA/w |
NONCE_KEY | 1R!zPZ.mPoo=[i1B[dUi2a13}0:>G{BToB:OX_(S8zT+PZ7nlEn78.#t0u7x?9)& |
AUTH_SALT | e+WE5olbqDvW7C[%Fs}d3n#_@8^,Ha<k&}kBL|:t@*Sl2vs#qT(lw`famVOPZ:!F |
SECURE_AUTH_SALT | Ks7ArUFaxK%!B`mqAsS;{qC,vpR36AiIcb@N1$[2<^SVY|?11$PV&P[PPzta,N<Z |
LOGGED_IN_SALT | 8lh7Q,HpTM}CMRtES%GVPD--09e!MUsQbinsA0-lS=qiUFfOaC]*,R?W$Po7UMak |
NONCE_SALT | m%tOV5u+uWm$e4V|4!y,:K_7`-N=m$unEx>SO:VZGMS)Y!h_ln/#zTJAkM)FK7{2 |
Key | Value |
WP_ENV | staging |
WP_HOME | https://staging.webnews.it |
WP_SITEURL | https://staging.webnews.it/wp |
WP_DEBUG | true |
WP_CACHE | false |
WPLANG | it_IT |
WP_POST_REVISIONS | false |
DB_NAME | webnews |
DB_USER | webnewsUSR |
DB_PASSWORD | M3l4.G4mes.N3ws |
DB_HOST | 127.0.0.1 |
GTM_ID_WEBNEWS | GTM-PV4S3R4X |
GTM_ID_MELABLOG | GTM-PV4S3R4X |
GTM_ID_GAMESBLOG | GTM-PV4S3R4X |
SITE_SPECIAL_TAXONOMY | special |
HTML_PRODUCT_POST_TYPE_SLUG | prodotti |
DISABLE_WP_CRON | true |
ACF_PRO_KEY | b3JkZXJfaWQ9NzQ2MTV8dHlwZT1kZXZlbG9wZXJ8ZGF0ZT0yMDE2LTAyLTA5IDExOjQ5OjE5 |
WP_ALLOW_MULTISITE | true |
MULTISITE | true |
SUBDOMAIN_INSTALL | true |
DOMAIN_CURRENT_SITE | staging.webnews.it |
PATH_CURRENT_SITE | / |
SITE_ID_CURRENT_SITE | 1 |
BLOG_ID_CURRENT_SITE | 1 |
OFFERS_POST_TYPE | post |
OFFERS_LIMIT | 2000 |
AUTH_KEY | E094PtbN,/./X6J)N>X}iRr2X@qzrp<)*n!<1kps=WXH11Ho^1)^#,,/N`RQ%4PA |
SECURE_AUTH_KEY | rek_-EaoK.j{F>G%}^{Kw+npcA[tI&MW0_:3|Liq*E/]U/ve{M`tRW7[,SX-?G|b |
LOGGED_IN_KEY | Y;LL^L-^5a5nG&?I;e[nj0<5<;&pprgWk9Eq-Ozp>H6DZwl)3LUtdxQJ-b*mXA/w |
NONCE_KEY | 1R!zPZ.mPoo=[i1B[dUi2a13}0:>G{BToB:OX_(S8zT+PZ7nlEn78.#t0u7x?9)& |
AUTH_SALT | e+WE5olbqDvW7C[%Fs}d3n#_@8^,Ha<k&}kBL|:t@*Sl2vs#qT(lw`famVOPZ:!F |
SECURE_AUTH_SALT | Ks7ArUFaxK%!B`mqAsS;{qC,vpR36AiIcb@N1$[2<^SVY|?11$PV&P[PPzta,N<Z |
LOGGED_IN_SALT | 8lh7Q,HpTM}CMRtES%GVPD--09e!MUsQbinsA0-lS=qiUFfOaC]*,R?W$Po7UMak |
NONCE_SALT | m%tOV5u+uWm$e4V|4!y,:K_7`-N=m$unEx>SO:VZGMS)Y!h_ln/#zTJAkM)FK7{2 |