Also hier ist mein kompletter Code
Ich hole mir alle Daten aus der Datenbank und gebe unten auch die Daten aus. Allerdings würde ich den permalink gerne aus dem QP_Query erhalten. Dafür den meta_query.
Allerdings wird mir immer nur 1 Permalink ausgegeben. Und kein Loop wo alle permalinks drin sind. Oder ist es so nicht machbar wie ich es mir vorstelle?
function immobilien_func($atts)
{
extract(shortcode_atts(array(
'object_category' => '',
'object_art' => ''
), $atts));
$db = new wpdb('root', '', 'table', 'localhost');
if (!$db) {
echo "Verbindung zur Datenbank konnte nicht hergestellt werden";
}
if ($object_art == "mietangebote") {
$rows = $db->get_results("SELECT id, online_number,intern_number FROM immobilien WHERE object_categorie = $object_category AND rental_price > 0 ORDER BY 'sort-order' ASC");
} elseif ($object_art == "kaufangebote") {
$rows = $db->get_results("SELECT id, online_number,intern_number FROM immobilien WHERE object_categorie = $object_category AND purchase_price > 0 ORDER BY 'sort-order' ASC");
}
foreach ($rows as $data) {
$online_nr = $data->online_number;
$intern_nr = $data->intern_number;
}
echo "<pre>",var_dump($online_nr),"</pre>";
$args = array(
'post_type' => 'immo',
'posts_per_page' => -1 ,
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'intern_number',
'value' => $intern_nr,
),
array(
'key' => 'online_number',
'compare' => $online_nr,
),
),
);
$output = '';
$post_query = new WP_Query($args);
if ($post_query->have_posts()) {
$output .= '<div class="uk-grid" uk-grid>
<div class="uk-width-1-1">';
while ($post_query->have_posts()) {
$post_query->the_post();
$purchase_price = get_post_meta(get_the_ID(), 'purchase_price');
$rental_price = get_post_meta(get_the_ID(), 'rental_price');
$object_categorie = get_post_meta(get_the_ID(), 'object_categorie');
$meta_living_area = get_post_meta(get_the_ID(), 'living_area');
$meta_usable_area = get_post_meta(get_the_ID(), 'usable_area');
$intern_number = get_post_meta(get_the_ID(), 'intern_number');
$room = get_post_meta(get_the_ID(), 'room');
$object_art = get_post_meta(get_the_ID(), 'object_art');
$zipcode = get_post_meta(get_the_ID(), 'zipcode');
$city = get_post_meta(get_the_ID(), 'city');
$img_path_list = get_post_meta(get_the_ID(), 'image');
if ($rental_price[0] != "") {
$preis_text = "Kaltmiete";
$price = number_format($rental_price[0], 2, ',', '.');
} elseif ($purchase_price[0] !== "") {
$preis_text = "Kaufpreis";
$price = number_format($purchase_price[0], 2, ',', '.');
}
if ($object_categorie == 301) {
$living_area = 'Nutzfläche: ' . $meta_usable_area[0] . ' m²';
} else {
$living_area = 'Wohnfläche: ' . $meta_living_area[0] . ' m²';
}
/*Wenn keine intern_number vergeben ist nicht anzeigen*/
if ($intern_number[0] != "") {
$intern_number = '
<h6 class="font-thin uk-text-small uk-text-uppercase price-info">
Objekt-ID:
'. $intern_number[0] . '
</h6>';
}else{
$intern_number = "";
}
$output .= '<div class="uk-card uk-card-small uk-background-muted uk-card uk-margin-bottom">
<div class="uk-card-body card-immobilien">
<div class="uk-grid" uk-grid>
<div class="uk-cover-container uk-height-large uk-width-2-5@l uk-inline">
<a class="uk-inline" href="'.get_the_permalink().'">
<img data-src="' . $img_path_list[0] . '" uk-img >
</a>
</div>
<div class="uk-width-3-5@l">
<div class="uk-grid uk-grid-match uk-grid-small uk-grid-divider" uk-grid>
<div class="uk-width-1-2@s uk-text-small">
<ul class="immobilien-list uk-list">
<li class="uk-margin-small-bottom">
<div class="content-left-side">
<h3 class="uk-h5 font-thin uk-text-uppercase">
' . $object_art[0] . ' <br> ' . $zipcode[0] . ' - ' . $city[0] . '
</h3>
<h6 class="font-thin uk-text-small uk-text-uppercase uk-margin-remove price-info">
' . $preis_text . '
</h6>
<h4 class="uk-text-primary price uk-h2 uk-margin-remove-top">
' . $price . ' €
</h4>
' . $intern_number . '
<h6 class="uk-margin-top uk-margin-remove-bottom font-thin uk-text-small price-info">
' . $living_area . '
</h6>
<h6 class="font-thin uk-margin-remove uk-text-small uk-text-uppercase price-info">
Zimmer: ' . $room[0] . '
</h6>
</div>
</li>
</ul>
</div>
<div class="uk-width-1-2@s uk-text-small">
<ul class="immobilien-list uk-list">
<li class="uk-margin-small-bottom">
<div class="divider uk-text-center content-right-side">
<h5 class="uk-margin-remove-bottom uk-h5 font-thin uk-text-uppercase">
Ihr Ansprechpartner</h5>
<h3 class="uk-margin-remove-top uk-h5 uk-text-bold">
Mario Wittkowsky
</h3>
<img class="ansprechpartner-img" data-src="files/src/ansprechpartner.png" uk-img>
<div class="uk-text-center@l uk-margin-top">
<h5 class="uk-margin-remove-bottom font-thin">
<a href="callto:+497164564448" class="uk-link-reset">
<span uk-icon="icon:receiver"></span> 0716 / 456 4448
</a>
</h5>
<h5 class="font-thin uk-margin-small-top">
<a href="mailto:verkauf@verkauf.de" class="uk-link-reset">
<span uk-icon="icon:mail"></span> verkauf@<br>immobilien.de
</a>
</h5>
</div>
<div class="uk-flex@l uk-flex-between uk-flex-bottom">
<div>
<a class="uk-text-uppercase uk-text-secondary uk-text-bold" href="'.get_the_permalink().'">
Details
</a>
</div>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>';
}
$output .= '</div></div>';
}
return $output;
}
Alles anzeigen