Mostrar texto o css con base en valor de Taxonomia

  • Autor Autor NetReyes
  • Fecha de inicio Fecha de inicio
N

NetReyes

Eta
Saludos,

Bueno compañeros estoy empezado en wordpress, aun se poco de programacion en PHP. Lo que quiero hacer es mostrar un texto o css diferente segun el valor que tenga la Taxonomia. Por ejemplo e creado esta taxonomia desde la funciones de Wordpress

Insertar CODE, HTML o PHP:
register_taxonomy('calidad', 'post', array(
    'hierarchical' => true,
    'labels' => array(
      'name' => _x( 'Calidad', 'taxonomy general name' ),
      'singular_name' => _x( 'Calidad', 'taxonomy singular name' ),
      'search_items' =>  __( 'Search Calidad' ),
      'all_items' => __( 'All Calidad' ),
      'parent_item' => __( 'Parent Calidad' ),
      'parent_item_colon' => __( 'Parent Calidad:' ),
      'edit_item' => __( 'Edit Calidad' ),
      'update_item' => __( 'Update Calidad' ),
      'add_new_item' => __( 'Add New Calidad' ),
      'new_item_name' => __( 'New Calidad Name' ),
      'menu_name' => __( 'Calidad' ),
    ),
    'rewrite' => array(
      'slug' => 'calidad', 
      'with_front' => false, 
      'hierarchical' => true
),
));

Ahora lo que quiero es que al ingresesar valores como HD Real 720, DVDRip o CAM aparesca un color. Lo estoy intentando de la siguiente manera pero no me funciona

Insertar CODE, HTML o PHP:
<?php
$terms_as_text = get_the_term_list( $post->ID,'calidad') ;
echo strip_tags($terms_as_text);

if $terms_as_text == 'HD Real 720') {
  echo "Texto";
}
else{
  echo "Texto";
}
?>
 
Gracias [MENTION=3028]OsKaR[/MENTION], pero e implementado lo siguiente pero no me funciona alguien me que pueda ayudar a corregir el codigo.

Insertar CODE, HTML o PHP:
<?php
$terms = get_the_terms( $post->ID, 'calidad');

if ($terms == 'TS Screener HQ') {
  echo "Texto 1";
}
else{
  echo "Texto 2";
}
?>
 
Gracias [MENTION=3028]OsKaR[/MENTION], pero e implementado lo siguiente pero no me funciona alguien me que pueda ayudar a corregir el codigo.

Insertar CODE, HTML o PHP:
<?php
$terms = get_the_terms( $post->ID, 'calidad');

if ($terms == 'TS Screener HQ') {
  echo "Texto 1";
}
else{
  echo "Texto 2";
}
?>

PHP:
<?php
$terms = get_the_terms( $post->ID, 'calidad');

if ($terms->name == 'TS Screener HQ') {
  echo "Texto 1";
}
else{
  echo "Texto 2";
}
?>
... https://codex.wordpress.org/Function_Reference/get_the_terms
 
Grcias buen amigo [MENTION=9679]cicklow[/MENTION],

pero no importa que valor tenga la taxonomia siempre me arroja el valor Texto 2 cuando la condicion del if se cumple en este caso TS Screener HQ


 
Grcias buen amigo [MENTION=9679]cicklow[/MENTION],

pero no importa que valor tenga la taxonomia siempre me arroja el valor Texto 2 cuando la condicion del if se cumple en este caso TS Screener HQ



hace un echo $terms->name; a ver realmente que te dice...
 
Ya lo hizo compañero pero no regresa ningun valor, todo en blanco.

PHP:
<?php
$terms = get_the_terms( $post->ID, 'calidad');
echo '<pre>'; print_r($terms);
?>

Este code estara dentro del single.php no?... o dentro del bucle... ya que sino tenes $post-ID no obtendras nada
 
PHP:
<?php
$terms = get_the_terms( $post->ID, 'calidad');
echo '<pre>'; print_r($terms);
?>

Este code estara dentro del single.php no?... o dentro del bucle... ya que sino tenes $post-ID no obtendras nada

Claro amigo se encuentra en el single.php, e colocado el codigo que acabas de colocar y aparece lo siguiente.

Insertar CODE, HTML o PHP:
Array
(
    [154] => stdClass Object
        (
            [term_id] => 154
            [name] => TS Screener HQ
            [slug] => ts-screener-hq
            [term_group] => 0
            [term_taxonomy_id] => 167
            [taxonomy] => calidad
            [description] => 
            [parent] => 0
            [count] => 2
            [object_id] => 113
            [filter] => raw
        )

)
 
Claro amigo se encuentra en el single.php, e colocado el codigo que acabas de colocar y aparece lo siguiente.

Insertar CODE, HTML o PHP:
Array
(
    [154] => stdClass Object
        (
            [term_id] => 154
            [name] => TS Screener HQ
            [slug] => ts-screener-hq
            [term_group] => 0
            [term_taxonomy_id] => 167
            [taxonomy] => calidad
            [description] => 
            [parent] => 0
            [count] => 2
            [object_id] => 113
            [filter] => raw
        )

)
ok ahi tenes como seria tu array...
PHP:
<?php
$terms = get_the_terms( $post->ID, 'calidad');
foreach($terms as $T){
if($T->name=="TS Screener HQ") echo 'Texto 1'; else echo 'Texto 2';
}
asumiendo que solo obtendras esa categoria ""TS Screener HQ""... de lo contrario usarias un switch
 
[MENTION=9679]cicklow[/MENTION] Gracias amigo funciona perfecto, por el momento de esta manera funciona, despues lo intento con switch, espero me salga.

Gracias.
 
[MENTION=27331]NetReyes[/MENTION] ampliando lo del compañero [MENTION=9679]cicklow[/MENTION] te dejo el código terminado:

PHP:
 <?php
$terms = get_the_terms( $post->ID, 'calidad');
// calidades
foreach($terms as $T){
 switch($T->name){
  case 'HD Real 720': echo '<div style="color:#aaa">HD Real 720</div>'; break;
  case 'DVDRip': echo '<div style="color:#bbb">DVDRip</div>'; break;
  case 'CAM': echo '<div style="color#ccc">CAM</div>'; break;
 }
}
?>
 

Temas similares

Atrás
Arriba