154 lines
3.2 KiB
PHP
154 lines
3.2 KiB
PHP
<?php
|
|
$theme_namespace = 'homegrade-theme__texte-fonctionnel';
|
|
function getThematiqueFamilySlug($thematique_slug)
|
|
{
|
|
if (!$thematique_slug) {
|
|
return null;
|
|
}
|
|
switch ($thematique_slug) {
|
|
case "energie":
|
|
case "urbanisme":
|
|
case "stedenbouw":
|
|
return "energies-urbanisme";
|
|
|
|
case "acoustique":
|
|
case "akoestiek":
|
|
case "petites-coproprietes":
|
|
case "kleine-mede-eigendommen":
|
|
return "acoustique-coproprietes";
|
|
|
|
case "isolation":
|
|
case "isolatie":
|
|
case "au-quotidien":
|
|
return "isolation-quotidien";
|
|
|
|
case "energies":
|
|
case "urbanisme":
|
|
case "stedenbouw":
|
|
return "energies-urbanisme";
|
|
|
|
case "patrimoine":
|
|
case "erfgoed":
|
|
case "aides-financieres":
|
|
case "financiele-steun":
|
|
return "patrimoine-renovation";
|
|
|
|
case "location":
|
|
case "verhuur":
|
|
case "circulaire-renovatie":
|
|
case "renovation-circulaire":
|
|
return "location-renovation-circulaire";
|
|
}
|
|
}
|
|
|
|
function getParentThematique($thematique)
|
|
{
|
|
if (!$thematique) {
|
|
return null;
|
|
}
|
|
|
|
if ($thematique->parent == 0) {
|
|
return $thematique;
|
|
} else {
|
|
return get_term($thematique->parent, 'thematiques');
|
|
}
|
|
}
|
|
|
|
// DOES THE SAME THING AS ABOVE BUT RENAMED
|
|
function getMainThematique($thematique)
|
|
{
|
|
if (!$thematique) {
|
|
return null;
|
|
}
|
|
|
|
if ($thematique->parent == 0) {
|
|
return $thematique;
|
|
} else {
|
|
return get_term($thematique->parent, 'thematiques');
|
|
}
|
|
}
|
|
// DOES THE SAME THING AS ABOVE BUT RENAMED
|
|
function getPostMainThematique($post)
|
|
{
|
|
return getMainThematique(get_the_terms($post, "thematiques")[0]);
|
|
}
|
|
|
|
// TO GET ARCHIVE RELATED PAGES BY TEMPLATE
|
|
function get_page_by_template($template = '')
|
|
{
|
|
$args = array(
|
|
'meta_key' => '_wp_page_template',
|
|
'meta_value' => $template
|
|
);
|
|
return get_pages($args);
|
|
}
|
|
|
|
function show_post_type_label_name($post_type)
|
|
{
|
|
|
|
switch ($post_type) {
|
|
case 'questions':
|
|
return __("Question", "homegrade-theme__texte-backoffice");
|
|
|
|
case 'conseils':
|
|
return __("Conseil", "homegrade-theme__texte-backoffice");
|
|
|
|
case 'page':
|
|
return __("Page", "homegrade-theme__texte-backoffice");
|
|
|
|
case 'post':
|
|
return __("News", "homegrade-theme__texte-backoffice");
|
|
|
|
case 'jobs':
|
|
return __("Offre d'emploi", "homegrade-theme__texte-backoffice");
|
|
|
|
default:
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* ---------
|
|
SORT BY THEMATIQUE PRIORITY
|
|
-----------------*/
|
|
|
|
// Fonction de comparaison pour trier par 'thematique_priority' utilisé par la fonction supérieur
|
|
function compareThematiquePriority($postA, $postB)
|
|
{
|
|
$priorityA = $postA->thematique_priority ?? 0;
|
|
$priorityB = $postB->thematique_priority ?? 0;
|
|
|
|
if ($priorityA == $priorityB) {
|
|
if ($postA->post_date > $postB->post_date) {
|
|
return -1;
|
|
} else {
|
|
return 1;
|
|
}
|
|
}
|
|
if ($priorityA < $priorityB) {
|
|
return 1;
|
|
}
|
|
if ($priorityA > $priorityB) {
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
function sort_posts_per_thematiques_priority($postsQuery)
|
|
{
|
|
|
|
foreach ($postsQuery->posts as $key => $post) {
|
|
$thematique = getPostMainThematique($post);
|
|
$post->thematique_priority = get_field('thematique_order', $thematique) ?? 0;
|
|
}
|
|
|
|
|
|
|
|
// Tri du tableau en utilisant la fonction de comparaison
|
|
usort($postsQuery->posts, 'compareThematiquePriority');
|
|
return $postsQuery;
|
|
}
|