| Server IP : 38.190.208.107 / Your IP : 216.73.217.46 Web Server : nginx/1.28.1 System : Linux ht2026040333114 6.1.0-10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.37-1 (2023-07-03) x86_64 User : root ( 0) PHP Version : 8.2.28 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv,eval,assert,passthru,system,exec,shell_exec,popen,proc_open MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/wp.2/wp-content/themes/blocksy/inc/components/single/ |
Upload File : |
<?php
if (! function_exists('blocksy_render_related_card')) {
function blocksy_render_related_card($args = []) {
$args = wp_parse_args(
$args,
[
'prefix' => blocksy_manager()->screen->get_prefix([
// 'allowed_prefixes' => ['blog'],
// 'default_prefix' => 'blog'
])
]
);
$card_render = apply_filters(
'blocksy:posts-listing:cards:custom-output',
null,
$args['prefix']
);
$related_item_attr = [
'id' => 'post-' . get_the_ID(),
'class' => implode(' ', get_post_class())
];
$entry_open = '<article ';
$entry_open .= blocksy_attr_to_html($args['item_attributes']) . ' ';
$entry_open .= blocksy_schema_org_definitions('creative_work:related_posts');
$entry_open .= '>';
$entry_open .= '<div ' . blocksy_attr_to_html($related_item_attr) . '>';
$entry_close = '</div></article>';
if ($card_render) {
echo $entry_open;
do_action('blocksy:single:related_posts:card:top');
echo $card_render['output'];
do_action('blocksy:single:related_posts:card:bottom');
echo $entry_close;
return;
}
$related_order = apply_filters(
'blocksy:posts-listing:related-order',
blocksy_get_theme_mod(
$args['prefix'] . '_related_order',
apply_filters('blocksy:posts-listing:related-order:default', [
[
'id' => 'featured_image',
'enabled' => true,
],
[
'id' => 'title',
'enabled' => true,
],
[
'id' => 'post_meta',
'enabled' => true,
'meta_elements' => blocksy_post_meta_defaults([
[
'id' => 'post_date',
'enabled' => true,
],
[
'id' => 'comments',
'enabled' => true,
],
]),
'__id' => 'meta_1'
],
], $args['prefix'])
)
);
$featured_image_settings = null;
$title_settings = null;
$post_meta_settings = null;
$last_enabled_component = null;
$enabled_components_count = 0;
if (! $related_order) {
$related_order = [];
}
$has_title_link = false;
foreach (array_reverse($related_order) as $index => $value) {
if ($value['id'] === 'featured_image') {
$featured_image_settings = $value;
}
if ($value['id'] === 'post_meta') {
$post_meta_settings = $value;
}
if ($value['id'] === 'title') {
$title_settings = $value;
if ($value['enabled']) {
$has_title_link = blocksy_default_akg('has_link', $value, 'yes') === 'yes';
}
}
}
foreach (array_reverse($related_order) as $index => $value) {
if ($value['enabled']) {
if (! $last_enabled_component) {
if (! isset($value['__id'])) {
$id = blocksy_rand_md5();
$related_order[count($related_order) - 1 - $index]['__id'] = $id;
$value['__id'] = $id;
}
$last_enabled_component = $value['id'] . $value['__id'];
}
$enabled_components_count++;
}
}
$image_hover_effect = blocksy_default_akg('image_hover_effect', $featured_image_settings, 'none');
$featured_image_size = blocksy_default_akg('image_size', $featured_image_settings, 'medium_large');
$featured_image_has_link = blocksy_default_akg('has_link', $featured_image_settings, 'yes') === 'yes';
$featured_image_args = [
'class' => trim($image_hover_effect !== 'none' ? 'has-hover-effect' : ''),
'attachment_id' => apply_filters(
'blocksy:related:render-card-layers:featured_image:attachment_id',
get_post_thumbnail_id()
),
'post_id' => get_the_ID(),
'ratio' => blocksy_default_akg('thumb_ratio', $featured_image_settings, '16/9'),
'tag_name' => $featured_image_has_link ? 'a' : 'figure',
'size' => $featured_image_size,
'html_atts' => $featured_image_has_link ? [
'href' => esc_url(get_permalink()),
'aria-label' => wp_strip_all_tags(get_the_title()),
] : [],
'lazyload' => blocksy_get_theme_mod(
'has_lazy_load_relateds_image',
'yes'
) === 'yes',
'display_video' => blocksy_default_akg('has_related_video_thumbnail', $featured_image_settings, 'no') === 'yes'
];
$outputs = null;
$card_content_classes = get_post_class('entry-card');
echo $entry_open;
do_action('blocksy:single:related_posts:card:top');
foreach ($related_order as $single_component) {
if (! $single_component['enabled']) {
continue;
}
$output = '';
if ('post_meta' === $single_component['id']) {
$post_meta_default = blocksy_post_meta_defaults([
[
'id' => 'post_date',
'enabled' => true,
],
[
'id' => 'comments',
'enabled' => true,
],
]);
$total_metas = [];
foreach ($related_order as $nested_single_component) {
if ($nested_single_component['id'] === 'post_meta') {
$total_metas[] = $nested_single_component;
}
}
$has_term_accent_color = 'yes';
foreach (blocksy_akg('meta_elements', $single_component, $post_meta_default) as $meta_element) {
if ($meta_element['id'] === 'categories') {
$has_term_accent_color = blocksy_akg('has_term_accent_color', $meta_element, 'yes');
}
}
$output = blocksy_post_meta(
blocksy_akg(
'meta_elements',
$single_component,
$post_meta_default
),
[
'meta_type' => blocksy_akg('meta_type', $single_component, 'simple'),
'meta_divider' => blocksy_akg('meta_divider', $single_component, 'slash'),
'has_term_class' => $has_term_accent_color === 'yes',
'attr' => [
'data-id' => substr($single_component['__id'], 0, 6)
]
]
);
}
if (! $outputs) {
$featured_image_output = '';
if (
get_the_post_thumbnail($featured_image_args['attachment_id'])
||
wp_get_attachment_image_url($featured_image_args['attachment_id'])
) {
$featured_image_output = blocksy_media($featured_image_args);
}
$outputs = apply_filters('blocksy:related:render-card-layers', [
'title' => blocksy_entry_title(
blocksy_default_akg('heading_tag', $title_settings, 'h4'),
blocksy_default_akg('has_link', $title_settings, 'yes') === 'yes',
['related-entry-title']
),
'featured_image' => apply_filters(
'post_thumbnail_html',
$featured_image_output,
get_the_ID(),
$featured_image_args['attachment_id'],
$featured_image_args['size'],
''
),
], $args['prefix'], $featured_image_args);
}
if (isset($outputs[$single_component['id']])) {
$output = $outputs[$single_component['id']];
}
$output = apply_filters(
'blocksy:related:render-card-layer',
$output,
$single_component
);
if (! isset($single_component['__id'])) {
$single_component['__id'] = '';
}
/**
* Note to code reviewers: This line doesn't need to be escaped.
* Variabile $output used here escapes the value properly.
*/
echo $output;
}
do_action('blocksy:single:related_posts:card:bottom');
echo $entry_close;
}
}