Ich habe eine Website geerbt und der Code, den ich derzeit habe, scheint die erste Kategorie, beurteilt nach alphabetischer Reihenfolge, denke ich, auf die Post-Schleife eines benutzerdefinierten Beitrags zu zeigen ...Zeige übergeordnete Kategorie anstelle der ersten Kategorie - Wordpress
ich habe diesen Code, der durch Kategorienamen und den Titel der Post ziehen:
class SeedPost {
public $post_id;
public $post_type;
function __construct($post_id) {
$this->post_id = $post_id;
$this->post_type = get_post_type($this->post_id);
}
function display($twocol = false) {
global $post;
$post = get_post($this->post_id);
$cols = $twocol ? 'two' : 'three';
setup_postdata($post);
if($this->post_type == 'portfolio') {
$overlay_class = 'item__overlay--portfolio';
} else {
$overlay_class = 'item--cat-' . SeedHelpers::first_category();
}
?>
<a href="<?php the_permalink(); ?>">
<div class="item item--<?php echo $cols; ?>">
<?php
if(has_post_thumbnail()) {
the_post_thumbnail('news-archive', array('class' => 'item--three__child'));
}
?>
<div class="item__overlay <?php echo $overlay_class; ?>">
<span class="item__cat-title item__cat-title--overlay"><?php echo SeedHelpers::first_category($this->post_type); ?></span>
<?php get_cat_name($cat_id) ?>
<h4 class="item__title"><?php the_title(); ?></h4>
<!-- <?php the_excerpt(); ?> -->
</div>
</div>
</div>
</a>
<?php
wp_reset_postdata();
}
Das Stück Code werden Sie feststellen, ist:
SeedHelpers::first_category($this->post_type)
Dies entspricht einem functi bezieht Ich glaube, das wird die erste Kategorie dieses Posts anzeigen.
Diese Funktion ist hier:
static function first_category($post_type = 'post') {
if($post_type == 'post') {
$category = get_the_category();
if($category) {
return $category[0]->cat_name;
}
return false;
} elseif($post_type == 'portfolio') {
$category = get_the_terms(get_the_ID(), 'portfolio-category');
if($category) {
return $category[0]->name;
}
return false;
}
}
Jeder meiner Beiträge haben eine Hauptkategorie und mehrere untergeordnete Kategorien, ich möchte den Code ändern, so dass es die Mutterunterkategorie zeigt nur ...
Ich habe die meisten Dinge ausprobiert, die ich online gefunden habe, aber ich kann es nicht richtig anzeigen lassen ...
EDIT >>>>>>>> Ich habe auch dieses Bit Code unter dem Bit oben - nicht Sicher, ob das etwas damit zu tun hat?
static function category_shorthand() {
$category = get_the_terms(get_the_ID(), 'portfolio-category');
if($category) {
$category_id = $category[0]->term_id;
$shorthand = get_field('shorthand', 'portfolio-category_' . $category_id);
if($shorthand) {
return $shorthand;
}
return $category[0]->name;
}
return false;
}
Die Seite ist hier: http://ideedev.co.uk/newseed/portfolio/ und zeigt die Kategorie in dem Überschlag auf einem Portfolioelement verpackt ...
versuchen '$ category [0] -> category_parent' – RST
Danke @RST Wo würde ich das hinzufügen? –
'$ category [0] -> category_parent' kommt anstelle von' $ category [0] -> name' – RST