RP_Rave1_theme/functions.php

802 lines
24 KiB
PHP
Raw Normal View History

2024-11-06 10:10:48 +00:00
<?php
remove_action("wp_head", "adjacent_posts_rel_link_wp_head");
remove_action("wp_head", "start_post_rel_link", 10, 0);
remove_action("wp_head", "wp_generator");
remove_action("wp_head", "rsd_link");
remove_action("wp_head", "wlwmanifest_link");
remove_action("wp_head", "feed_links_extra", 3);
remove_action("wp_head", "rel_canoical");
remove_action("wp_head", "feed_links", 2);
remove_action("wp_head", "index_rel_link");
remove_action("wp_head", "rel_next");
remove_action("wp_head", "parent_post_rel_link", 10, 0);
remove_action("wp_head", "locale_stylesheet");
remove_action("wp_head", "noindex");
remove_action("wp_head", "wp_print_styles");
remove_action("wp_head", "wp_print_head_scripts");
remove_action("wp_head", "wp_resource_hints", 2);
add_theme_support("post-thumbnails");
remove_action("wp_head", "print_emoji_detection_script", 7);
remove_action("wp_print_styles", "print_emoji_styles");
add_action("admin_print_footer_scripts", "appthemes_add_quicktags");
set_post_thumbnail_size(1000, 562, ["center", "center"]); // 50 pixels wide by 50 pixels tall, crop from the center
function register_my_menus()
{
register_nav_menus([
"header-menu" => __("Header Menu"),
]);
}
add_action("init", "register_my_menus");
/**
* Register widget area.
*
* @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar
*/
function escapium_widgets_init()
{
register_sidebar([
"name" => esc_html__("Sidebar", "escapium"),
"id" => "sidebar-1",
"description" => esc_html__("Add widgets here.", "escapium"),
"before_widget" =>
'<section id="%1$s" class="widget widget--sidebar %2$s">',
"after_widget" => "</section>",
"before_title" =>
'<div class="widget__header"><h3 class="widget__title">',
"after_title" => "</h3></div>",
]);
register_sidebar([
"name" => esc_html__("Footer Widget Area 1", "escapium"),
"id" => "footer-widget-1",
"description" => esc_html__("1st Footer Widget Area.", "escapium"),
"before_widget" =>
'<section id="%1$s" class="widget widget--footer %2$s">',
"after_widget" => "</section>",
"before_title" =>
'<div class="widget__header"><h4 class="widget__title">',
"after_title" => "</h4></div>",
]);
register_sidebar([
"name" => esc_html__("Footer Widget Area 2", "escapium"),
"id" => "footer-widget-2",
"description" => esc_html__("2nd Footer Widget Area.", "escapium"),
"before_widget" =>
'<section id="%1$s" class="widget widget--footer %2$s">',
"after_widget" => "</section>",
"before_title" =>
'<div class="widget__header"><h4 class="widget__title">',
"after_title" => "</h4></div>",
]);
register_sidebar([
"name" => esc_html__("Footer Widget Area 3", "escapium"),
"id" => "ooter-widget-3",
"description" => esc_html__("3rd Footer Widget Area.", "escapium"),
"before_widget" =>
'<section id="%1$s" class="widget widget--footer %2$s">',
"after_widget" => "</section>",
"before_title" =>
'<div class="widget__header"><h4 class="widget__title">',
"after_title" => "</h4></div>",
]);
register_sidebar([
"name" => esc_html__("Footer Widget Area 4", "escapium"),
"id" => "footer-widget-4",
"description" => esc_html__("4th Footer Widget Area.", "escapium"),
"before_widget" =>
'<section id="%1$s" class="widget widget--footer %2$s">',
"after_widget" => "</section>",
"before_title" =>
'<div class="widget__header"><h4 class="widget__title">',
"after_title" => "</h4></div>",
]);
}
add_action("widgets_init", "escapium_widgets_init");
function special_nav_class($classes, $item)
{
if (in_array("page-item.current", $classes)) {
$classes[] = "active";
}
return $classes;
}
add_filter("nav_menu_css_class", "special_nav_class", 10, 2);
if (function_exists("cn_cookies_accepted") && cn_cookies_accepted()) {
// Your third-party non functional code here
}
// add more buttons to the html editor
function appthemes_add_quicktags()
{
if (wp_script_is("quicktags")) { ?>
<script type="text/javascript">
QTags.addButton('eg_kep', 'Kép beágyazás 1000x562-nél nagyobb kép esetén!', '<div class="nk-post-img"><img src="IDE A KÉP ELÉRÉSE"></div>', '', 'h', 'Kép Beágyazás 1000x562-nél nagyobb kép esetén!', 203);
QTags.addButton('eg_video', 'Videó beágyazás', '<div class="nk-plain-video" data-video="IDE A LINK!"></div>', '', 'h', 'Videó Beágyazás', 201);
QTags.addButton('eg_twichclip', 'Twitch clip beágyazás ', '<div class="nk-plain-video"><iframe src="https://clips.twitch.tv/embed?clip= ide id" height="360" width="640" frameborder="0" scrolling="no" allowfullscreen="true" </iframe>"></div>', '', 'h', 'Twitch clip beágyazás', 204);
QTags.addButton('eg_video', 'szóköz', '<div class="nk-gap-1"></div>', '', 'h', 'szóköz', 205);
</script>
<?php }
}
function filter_images($content)
{
return preg_replace(
"/<img (.*) \/>\s*/iU",
'<span class="className"><b><img \1 /></b></span>',
$content
);
}
add_filter("the_content", "filter_images");
// ---- facebook end
// Produces a list of pages in the header without whitespace -- er, I mean negative space.
function sandbox_globalnav()
{
echo '<div id="menu"><ul>';
$menu = wp_list_pages("title_li=&sort_column=post_title&echo=0"); // Params for the page list in header.php
echo str_replace(["\r", "\n", "\t"], "", $menu);
echo "</ul></div>\n";
}
// Checks for WP 2.1.x language_attributes() function
function sandbox_blog_lang()
{
if (function_exists("language_attributes")) {
return language_attributes();
}
}
// Generates semantic classes for BODY element
function sandbox_body_class($print = true)
{
global $wp_query, $current_user;
// It's surely a WordPress blog, right?
$c = ["wordpress"];
// Applies the time- and date-based classes (below) to BODY element
sandbox_date_classes(time(), $c);
// Generic semantic classes for what type of content is displayed
is_home() ? ($c[] = "home") : null;
is_archive() ? ($c[] = "archive") : null;
is_date() ? ($c[] = "date") : null;
is_search() ? ($c[] = "search") : null;
is_paged() ? ($c[] = "paged") : null;
is_attachment() ? ($c[] = "attachment") : null;
is_404() ? ($c[] = "four04") : null; // CSS does not allow a digit as first character
// Special classes for BODY element when a single post
if (is_single()) {
$postID = $wp_query->post->ID;
the_post();
$c[] = "single postid-" . $postID;
if (isset($wp_query->post->post_date)) {
sandbox_date_classes(
mysql2date("U", $wp_query->post->post_date),
$c,
"s-"
);
}
foreach ((array) get_the_category() as $cat) {
$c[] = "s-category-" . $cat->category_nicename;
}
$c[] =
"s-author-" .
sanitize_title_with_dashes(strtolower(get_the_author("login")));
rewind_posts();
}
// Author name classes for BODY on author archives
elseif (is_author()) {
$author = $wp_query->get_queried_object();
$c[] = "author";
$c[] = "author-" . $author->user_nicename;
}
// Category name classes for BODY on category archvies
elseif (is_category()) {
$cat = $wp_query->get_queried_object();
$c[] = "category";
$c[] = "category-" . $cat->category_nicename;
}
// Page author for BODY on 'pages'
elseif (is_page()) {
$pageID = $wp_query->post->ID;
the_post();
$c[] = "page pageid-" . $pageID;
$c[] =
"page-author-" .
sanitize_title_with_dashes(strtolower(get_the_author("login")));
rewind_posts();
}
// For when a visitor is logged in while browsing
if ($current_user->ID) {
$c[] = "loggedin";
}
// Paged classes; for 'page X' classes of index, single, etc.
if (
(($page = $wp_query->get("paged")) ||
($page = $wp_query->get("page"))) &&
$page > 1
) {
$c[] = "paged-" . $page . "";
if (is_single()) {
$c[] = "single-paged-" . $page . "";
} elseif (is_page()) {
$c[] = "page-paged-" . $page . "";
} elseif (is_category()) {
$c[] = "category-paged-" . $page . "";
} elseif (is_date()) {
$c[] = "date-paged-" . $page . "";
} elseif (is_author()) {
$c[] = "author-paged-" . $page . "";
} elseif (is_search()) {
$c[] = "search-paged-" . $page . "";
}
}
// Separates classes with a single space, collates classes for BODY
$c = join(" ", apply_filters("body_class", $c));
// And tada!
return $print ? print $c : $c;
}
// Generates semantic classes for each post DIV element
function sandbox_post_class($print = true)
{
global $post, $sandbox_post_alt;
// hentry for hAtom compliace, gets 'alt' for every other post DIV, describes the post type and p[n]
$c = ["hentry", "p$sandbox_post_alt", $post->post_type, $post->post_status];
// Author for the post queried
$c[] =
"author-" .
sanitize_title_with_dashes(strtolower(get_the_author("login")));
// Category for the post queried
foreach ((array) get_the_category() as $cat) {
$c[] = "category-" . $cat->category_nicename;
}
// For password-protected posts
if ($post->post_password) {
$c[] = "protected";
}
// Applies the time- and date-based classes (below) to post DIV
sandbox_date_classes(mysql2date("U", $post->post_date), $c);
// If it's the other to the every, then add 'alt' class
if (++$sandbox_post_alt % 2) {
$c[] = "alt";
}
// Separates classes with a single space, collates classes for post DIV
$c = join(" ", apply_filters("post_class", $c));
// And tada!
return $print ? print $c : $c;
}
// Define the num val for 'alt' classes (in post DIV and comment LI)
$sandbox_post_alt = 1;
// Generates semantic classes for each comment LI element
function sandbox_comment_class($print = true)
{
global $comment, $post, $sandbox_comment_alt;
// Collects the comment type (comment, trackback),
$c = [$comment->comment_type];
// Counts trackbacks (t[n]) or comments (c[n])
if ($comment->comment_type == "trackback") {
$c[] = "t$sandbox_comment_alt";
} else {
$c[] = "c$sandbox_comment_alt";
}
// If the comment author has an id (registered), then print the log in name
if ($comment->user_id > 0) {
$user = get_userdata($comment->user_id);
// For all registered users, 'byuser'; to specificy the registered user, 'commentauthor+[log in name]'
$c[] = "byuser comment-author-" . strtolower($user->user_login);
// For comment authors who are the author of the post
if ($comment->user_id === $post->post_author) {
$c[] = "bypostauthor";
}
}
// If it's the other to the every, then add 'alt' class; collects time- and date-based classes
sandbox_date_classes(mysql2date("U", $comment->comment_date), $c, "c-");
if (++$sandbox_comment_alt % 2) {
$c[] = "alt";
}
// Separates classes with a single space, collates classes for comment LI
$c = join(" ", apply_filters("comment_class", $c));
// Tada again!
return $print ? print $c : $c;
}
// Generates time- and date-based classes for BODY, post DIVs, and comment LIs; relative to GMT (UTC)
function sandbox_date_classes($t, &$c, $p = "")
{
$t = $t + get_settings("gmt_offset") * 3600;
$c[] = $p . "y" . gmdate("Y", $t); // Year
$c[] = $p . "m" . gmdate("m", $t); // Month
$c[] = $p . "d" . gmdate("d", $t); // Day
$c[] = $p . "h" . gmdate("H", $t); // Hour
}
// For category lists on category archives, returns other categorys except the current one (redundant)
function sandbox_cats_meow($glue)
{
$current_cat = single_cat_title("", false);
$separator = "\n";
$cats = explode($separator, get_the_category_list($separator));
foreach ($cats as $i => $str) {
if (strstr($str, ">$current_cat<")) {
unset($cats[$i]);
break;
}
}
if (empty($cats)) {
return false;
}
return trim(join($glue, $cats));
}
//Admin bar '__return_false' ha nem kell
//add_filter( 'show_admin_bar', '__return_true' );
add_action("after_setup_theme", "remove_admin_bar");
function remove_admin_bar()
{
if (!current_user_can("administrator") && !is_admin()) {
show_admin_bar(false);
}
}
//Borítóképhez bejegyzés link
function wpb_autolink_featured_images($html, $post_id, $post_image_id)
{
if (!is_singular()) {
$html =
'<a href="' .
get_permalink($post_id) .
'" title="' .
esc_attr(get_the_title($post_id)) .
'">' .
$html .
"</a>";
return $html;
} else {
return $html;
}
}
add_filter("post_thumbnail_html", "wpb_autolink_featured_images", 10, 3);
//Tags
function wpb_tags()
{
$wpbtags = get_tags();
foreach ($wpbtags as $tag) {
$string .=
'<span class="tagbox"><a class="taglink" href="' .
get_tag_link($tag->term_id) .
'">' .
$tag->name .
'</a><span class="tagcount">' .
$tag->count .
"</span></span>" .
"\n";
}
return $string;
}
add_shortcode("wpbtags", "wpb_tags");
if (!function_exists("escapium_post_header")) {
/**
* Prints HTML with meta information for the categories, tags and comments.
*/
function escapium_post_header()
{
// Hide category text for pages.
if ("post" === get_post_type()) {
/* translators: used between list items, there is a space after the comma */
$output = "";
$categories = get_the_category();
$separator = esc_html__(", ", "escapium");
if (!empty($categories)) {
echo '<ul class="post__tax list-unstyled">';
foreach ($categories as $category) {
$output .=
'<li class="post__tax-item"><a href="' .
esc_url(get_category_link($category->term_id)) .
'">' .
esc_html($category->name) .
"</a></li>" .
$separator;
}
echo trim($output, $separator);
echo "</ul>";
}
}
the_title(
'<h2 class="post__title"><a href="' .
esc_url(get_permalink()) .
'" rel="bookmark">',
"</a></h2>"
);
// Hide meta text for pages.
if ("post" === get_post_type()) {
echo '<ul class="post__meta list-unstyled">';
// Prints date meta
$time_string = '<time datetime="%1$s">%2$s</time>';
$time_string = sprintf(
$time_string,
esc_attr(get_the_date(DATE_W3C)),
esc_html(get_the_date()),
esc_attr(get_the_modified_date(DATE_W3C)),
esc_html(get_the_modified_date())
);
echo '<li class="post__meta-item post__meta-item--date"><a href="' .
esc_url(get_permalink()) .
'" rel="bookmark">' .
$time_string .
"</a></li>"; // WPCS: XSS OK.
// Prints author meta
echo '<li class="post__meta-item post__meta-item--author"><a href="' .
esc_url(get_author_posts_url(get_the_author_meta("ID"))) .
'">' .
esc_html(get_the_author()) .
"</a></li>";
// Prints comments meta
echo '<li class="post__meta-item post__meta-item--comments">';
comments_number(
esc_html__("No comments", "escapium"),
esc_html__("One comment", "escapium"),
esc_html__("% comments", "escapium")
);
echo "</li>";
echo "</ul>";
}
}
}
// /**
// * Load custom global CSS into both block editor "iframe" and frontend
// *
// * @return void
// */
// function my_theme_enqueue_custom_global_css_in_blocks()
// {
// // Add custom CSS to frontend.
// wp_enqueue_style(
// 'my-custom-css',
// get_template_directory_uri() . '/assets/css/custom.css',
// array('global-styles', '') // say to wordpress to inject this file after the css file generated from "theme.json"
// );
// // Add custom CSS to block editor "iframe".
// add_editor_style('custom.css');
// }
// add_action('wp_head', 'my_theme_enqueue_custom_global_css_in_blocks');
function custom_comment_check() {
// Ellenőrzi, hogy egy adott bejegyzésnél engedélyezve vannak-e a hozzászólások
if (is_single() && comments_open()) {
// Ha a hozzászólások engedélyezve vannak, két div osztály hozzáadása
echo '<div class="custom-comment-icon-wrapper">
<div class="custom-comment-icon"></div>
<div class="custom-tooltip">Kommentelnél? DE NEM IDE! Vicceltem, katt rám!</div>
</div>';
echo '';
}
}
// Akciók lefuttatása a bejegyzés tartalmának megjelenítése előtt
add_action('wp_footer', 'custom_comment_check');
function register_style()
{
//Bootstrap mindig első helyen legyen!
echo '<link href="' .
get_bloginfo("template_directory") .
'/assets/vendor/bootstrap/css/bootstrap.css" rel="stylesheet">';
//Ezt a sorrendet se változtasd meg!
echo '<link href="' .
get_bloginfo("template_directory") .
'/assets/css/style.css" rel="stylesheet">';
echo '<link href="' .
get_bloginfo("template_directory") .
'/assets/css/custom.css" rel="stylesheet">';
echo '<link href="' .
get_bloginfo("template_directory") .
'/assets/css/booked.css" rel="stylesheet">';
}
add_action("wp_head", "register_style");
function rp_style()
{
wp_enqueue_style(
"animate",
get_template_directory_uri() . "/assets/vendor/animate/animate.css",
[],
""
);
wp_enqueue_style(
"aos",
get_template_directory_uri() . "/assets/vendor/aos/aos.css",
[],
""
);
wp_enqueue_style(
"simple-icon",
get_template_directory_uri() .
"/assets/font-icon/simple-line-icons/css/simple-line-icons.css",
[],
""
);
wp_enqueue_style(
"ionicons",
get_template_directory_uri() .
"/assets/font-icon/ionicons/css/ionicons.min.css",
[],
""
);
wp_enqueue_style(
"magnific-popup",
get_template_directory_uri() .
"/assets/vendor/magnific-popup/magnific-popup.css",
[],
""
);
wp_enqueue_style(
"slick",
get_template_directory_uri() . "/assets/vendor/slick/slick.css",
[],
""
);
}
add_action("wp_head", "rp_style");
function rp_script()
{
wp_enqueue_script(
"jquery-min",
get_template_directory_uri() . "/assets/vendor/jquery/jquery.min.js",
[],
""
);
wp_enqueue_script(
"jquery-migrate",
get_template_directory_uri() .
"/assets/vendor/jquery/jquery-migrate.min.js",
[],
""
);
wp_enqueue_script(
"bootstrap-js",
get_template_directory_uri() .
"/assets/vendor/bootstrap/js/bootstrap.bundle.min.js",
[],
""
);
wp_enqueue_script(
"font-awesome",
get_template_directory_uri() .
"/assets/font-icon/font-awesome/js/all.min.js",
[],
""
);
wp_enqueue_script(
"core",
get_template_directory_uri() . "/assets/js/core.js",
[],
""
);
wp_enqueue_script(
"initjs",
get_template_directory_uri() . "/assets/js/init.js",
[],
""
);
wp_enqueue_script(
"header-search",
get_template_directory_uri() . "/assets/js/header-search.js",
["jquery"],
"1.0.0",
true
);
wp_enqueue_script(
"comments",
get_template_directory_uri() . "/assets/js/comments.js",
["jquery"],
"1.0.0",
true
);
}
add_action("wp_footer", "rp_script");
/* Kezdőoldal címének cseréje */
function custom_homepage_title($title, $id = null)
{
// Ellenőrizzük, hogy az oldal van-e beállítva kezdőlapnak és hogy az aktuális bejegyzés ID-ja egyezik-e a kezdőlap ID-jával
if (is_front_page() && is_page($id)) {
// Cseréljük le a címet a saját megadott címünkre
$title = "Üdvözöllek az oldalon";
}
return $title;
}
// A the_title filtert használjuk, hogy módosítsuk az oldal címét
add_filter("the_title", "custom_homepage_title", 10, 2);
/**
* Load Jetpack compatibility file.
*/
if (defined("JETPACK__VERSION")) {
require get_template_directory() . "/template-parts/jetpack.php";
}
/**
* Közreműködők betöltése
*/
require_once get_template_directory() . "/template-parts/contributor.php";
/**
* Breadcrumbs betöltése
*/
require_once get_template_directory() . "/template-parts/breadcrumbs.php";
/**
* Achievement betöltése
*/
require_once get_template_directory() . "/template-parts/achievement.php";
/* ---------------------------------------------------------------------------------------------
COMMENT FUNCTION
--------------------------------------------------------------------------------------------- */
if (!function_exists("escapium_comment")) {
function escapium_comment($comment, $args, $depth)
{
switch ($comment->comment_type):
case "pingback":
case "trackback": ?>
<li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>">
<?php __(
"Pingback:",
"escapium"
); ?> <?php comment_author_link(); ?> <?php edit_comment_link(
__("(Edit)", "escapium"),
'<span class="edit-link">',
"</span>"
); ?>
</li>
<?php break;default:
global $post; ?>
<li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>">
<div id="comment-<?php comment_ID(); ?>" class="comment">
<?php echo get_avatar($comment, 80); ?>
<div class="comment-inner">
<div class="comment-header">
<?php printf('<cite class="fn">%1$s</cite>', get_comment_author_link()); ?>
<p><a href="<?php echo esc_url(
get_comment_link($comment->comment_ID)
); ?>"><?php printf(
_x('%1$s at %2$s', "[date] at [time of day]", "escapium"),
get_comment_date(),
get_comment_time()
); ?></a></p>
<div class="comment-actions">
<?php edit_comment_link(__("Edit", "escapium"), "", ""); ?>
<?php comment_reply_link(
array_merge($args, [
"reply_text" => __("Reply", "escapium"),
"depth" => $depth,
"max_depth" => $args["max_depth"],
])
); ?>
<div class="clear"></div>
</div><!-- .comment-actions -->
</div><!-- .comment-header -->
<div class="comment-content">
<?php if ("0" == $comment->comment_approved): ?>
<p class="comment-awaiting-moderation"><?php _e(
"Awaiting moderation",
"escapium"
); ?></p>
<?php endif; ?>
<?php comment_text(); ?>
</div><!-- .comment-content -->
<div class="comment-actions-below hidden">
<?php edit_comment_link(__("Edit", "escapium"), "", ""); ?>
<?php comment_reply_link(
array_merge($args, [
"reply_text" => __("Reply", "escapium"),
"depth" => $depth,
"max_depth" => $args["max_depth"],
])
); ?>
<div class="clear"></div>
</div><!-- .comment-actions -->
</div><!-- .comment-inner -->
</div><!-- .comment-## -->
<?php break;
endswitch;
}
}
?>