it-swarm.com.de

Wenn auf Term-Seite -> den aktuellen Term bekommen?

Ich versuche eine Art "Breadcrumb" -Funktion in meine "functions.php" zu schreiben

Ich möchte abfragen, ob ich mich auf einer Term-Seite befinde und ob ich den aktuellen Term ausdrucken möchte, in dem ich mich befinde.

Mit "Begriffsseite" meine ich Folgendes. Ich liste alle Begriffe einer benutzerdefinierten Taxonomie (die einem benutzerdefinierten Post-Typ zugeordnet sind) als Kategorien in meiner Kopfzeile auf. Ich mache das mit get_term_link($term->slug, 'my_taxonomy');

In meiner neuen Funktion für die Semmelbrösel möchte ich abfragen, ob ich auf einer dieser Seiten bin und diesen Begriff ausdrucken.

Zunächst einmal ... mache ich das ...

if ( is_taxonomy_hierarchical('my_taxonomy) ) {
            echo "test";

Aber jetzt hängt meine Funktion von dieser my_taxonomy Zeichenfolge ab. Ich würde diese Funktion gerne für alle kommenden Taxonomien verwenden. Wie kann ich das machen? Es gibt bedingte Tags wie is_category(), die keine Parameter benötigen. Warum benötigen alle Term- oder Taxonomiebedingungen diesen Parameter?

Und wie kann ich den aktuellen Begriff ausdrucken, in dem ich mich befinde? Im Moment wiederhole ich nur "Test", möchte aber den aktuellen Begriff ausdrucken.

Irgendwelche Ideen dazu? Danke im Voraus.

UPDATE:

function list_breadcrumbs() {

    $q_object = get_queried_object();
    $taxonomy = $q_object->taxonomy;

    $seperator = " <span class='separator'>&rang;</span> ";

    if ( !is_home() ) {

            echo "<a href='" . get_bloginfo('url') . "' title='Home'>Home</a>" . $seperator;

        if ( is_category() ) {
            $category = get_the_category(); 
            echo "<span class='breadcrumb'>" . $category[0]->cat_name . "</span>";
        } else if ( is_tax( $taxonomy ) ) {
            echo "The Term Name";
        } else if ( is_single() ) {
            …
        } else if ( is_page() ) {
            …
1
mathiregister

Du wirst get_queried_object() wollen. Dies ist eine sehr allgemeine Funktion - und gibt einfach das abgefragte Objekt zurück - also ein einzelner Beitrag, dies wäre ein Beitragsobjekt.

Beispielsweise kann das Rückgabeobjekt die Form haben:

Object (
    [term_id] => 299
    [name] => test
    [slug] => test
    [term_group] => 0
    [term_taxonomy_id] => 317
    [taxonomy] => event-category
    [description] => 
    [parent] => 0
    [count] => 2
)

Also zum Beispiel:

  $q_object = get_queried_object();
  if( isset($q_object->taxonomy) ){
     $taxonomy = $q_object->taxonomy;
  }else{
    //Not a taxonomy page
  }

So verwenden Sie dies in einer Funktion:

function wpse51753_breadcrumbs(){
    if( !is_tax() && !is_tag() && !is_category() )
       return;

    //If we got this far we are on a taxonomy-term page
    // (or a tag-term or category-term page)
    $taxonomy = get_query_var( 'taxonomy' );
    $queried_object = get_queried_object();
    $term_id =  (int) $queried_object->term_id;

    //Echo breadcrumbs
}

Dann nur wpse51753_breadcrumbs(); in Ihrer Vorlage, wo immer Sie die Semmelbrösel anzeigen möchten.

4
Stephen Harris