Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Mostrar categorías o etiquetas de un Custom Post Type en metatags de AVADA

La semana pasada nos hicieron una consulta sobre el theme Avada, ¿Qué pasa si tenemos un CUSTOM POST TYPE con sus respectivas taxonomías y queremos que estas se muestren en los metatags de AVADA?

Bueno, pues lo primero que tienes que saber es que AVADA trae de base esta función que ves más abajo, y que es la que muestra los metatags, aquí es donde puedes hacer los cambios que necesites. Copia y pega esta función en el functions.php de tu Child Theme o en tu mu-plugin.

function avada_render_post_metadata( $layout, $settings = array() ) {

		$html = $author = $date = $metadata = '';

		$settings = ( is_array( $settings ) ) ? $settings : array();

		$default_settings = array(
			'post_meta'          => Avada()->settings->get( 'post_meta' ),
			'post_meta_author'   => Avada()->settings->get( 'post_meta_author' ),
			'post_meta_date'     => Avada()->settings->get( 'post_meta_date' ),
			'post_meta_cats'     => Avada()->settings->get( 'post_meta_cats' ),
			'post_meta_tags'     => Avada()->settings->get( 'post_meta_tags' ),
			'post_meta_comments' => Avada()->settings->get( 'post_meta_comments' ),
		);

		$settings = wp_parse_args( $settings, $default_settings );

		// Check if meta data is enabled.
		if ( ( $settings['post_meta'] && 'no' != get_post_meta( get_queried_object_id(), 'pyre_post_meta', true ) ) || ( ! $settings['post_meta'] && 'yes' == get_post_meta( get_queried_object_id(), 'pyre_post_meta', true ) ) ) {

			// For alternate, grid and timeline layouts return empty single-line-meta if all meta data for that position is disabled.
			if ( in_array( $layout, array( 'alternate', 'grid_timeline' ) ) && ! $settings['post_meta_author'] && ! $settings['post_meta_date'] && ! $settings['post_meta_cats'] && ! $settings['post_meta_tags'] && ! $settings['post_meta_comments'] ) {
				return '';
			}

			// Render author meta data.
			if ( $settings['post_meta_author'] ) {
				ob_start();
				the_author_posts_link();
				$author_post_link = ob_get_clean();

				// Check if rich snippets are enabled.
				if ( ! Avada()->settings->get( 'disable_date_rich_snippet_pages' ) ) {
					$metadata .= sprintf( esc_html__( 'By %s', 'Avada' ), '' . $author_post_link . '' );
				} else {
					$metadata .= sprintf( esc_html__( 'By %s', 'Avada' ), '' . $author_post_link . '' );
				}
				$metadata .= '|';
			} else { // If author meta data won't be visible, render just the invisible author rich snippet.
				$author .= avada_render_rich_snippets_for_pages( false, true, false );
			}

			// Render the updated meta data or at least the rich snippet if enabled.
			if ( $settings['post_meta_date'] ) {
				$metadata .= avada_render_rich_snippets_for_pages( false, false, true );

				$formatted_date = get_the_time( Avada()->settings->get( 'date_format' ) );
				$date_markup = '' . $formatted_date . '|';
				$metadata .= apply_filters( 'avada_post_metadata_date', $date_markup, $formatted_date );
			} else {
				$date .= avada_render_rich_snippets_for_pages( false, false, true );
			}

			// Render rest of meta data.
			// Render categories.
			if ( $settings['post_meta_cats'] ) {
				ob_start();
				the_category( ', ' );
				$categories = ob_get_clean();

				if ( $categories ) {
					$metadata .= ( $settings['post_meta_tags'] ) ? sprintf( esc_html__( 'Categories: %s', 'Avada' ), $categories ) : $categories;
					$metadata .= '|';
				}
			}

			// Render tags.
			if ( $settings['post_meta_tags'] ) {
				ob_start();
				the_tags( '' );
				$tags = ob_get_clean();

				if ( $tags ) {
					$metadata .= '' . sprintf( esc_html__( 'Tags: %s', 'Avada' ), $tags ) . '|';
				}
            }
            
			// Render comments.
			if ( $settings['post_meta_comments'] && 'grid_timeline' !== $layout ) {
				ob_start();
				comments_popup_link( esc_html__( '0 Comments', 'Avada' ), esc_html__( '1 Comment', 'Avada' ), esc_html__( '% Comments', 'Avada' ) );
				$comments = ob_get_clean();
				$metadata .= '' . $comments . '';
			}

			// Render the HTML wrappers for the different layouts.
			if ( $metadata ) {
				$metadata = $author . $date . $metadata;

				if ( 'single' == $layout ) {
					$html .= '
' . $metadata . '
'; } elseif ( in_array( $layout, array( 'alternate', 'grid_timeline' ) ) ) { $html .= '

' . $metadata . '

'; } else { $html .= '
' . $metadata . '
'; } } else { $html .= $author . $date; } } else { // Render author and updated rich snippets for grid and timeline layouts. if ( Avada()->settings->get( 'disable_date_rich_snippet_pages' ) ) { $html .= avada_render_rich_snippets_for_pages( false ); } } return apply_filters( 'avada_post_metadata_markup', $html ); } }

A esta función le tienes que añadir esta pequeña condicional para indicarle que si existe tal taxonomía, la muestre. En este ejemplo la taxonomía de nuestro Custom Post Type se llama tipos, cámbialo con el nombre de tu taxonomía.

$tipos=get_the_term_list( $post->ID, 'tipos', 'TIPOS: ', ', ', ' ' );

                if( $tipos ) {
                    $metadata .= '' . sprintf( esc_html__( '%s', 'Avada' ), $tipos ) . '|';
                }

Con lo que nuestra función completa quedaría de esta manera:

function avada_render_post_metadata( $layout, $settings = array() ) {

		$html = $author = $date = $metadata = '';

		$settings = ( is_array( $settings ) ) ? $settings : array();

		$default_settings = array(
			'post_meta'          => Avada()->settings->get( 'post_meta' ),
			'post_meta_author'   => Avada()->settings->get( 'post_meta_author' ),
			'post_meta_date'     => Avada()->settings->get( 'post_meta_date' ),
			'post_meta_cats'     => Avada()->settings->get( 'post_meta_cats' ),
			'post_meta_tags'     => Avada()->settings->get( 'post_meta_tags' ),
			'post_meta_comments' => Avada()->settings->get( 'post_meta_comments' ),
		);

		$settings = wp_parse_args( $settings, $default_settings );

		// Check if meta data is enabled.
		if ( ( $settings['post_meta'] && 'no' != get_post_meta( get_queried_object_id(), 'pyre_post_meta', true ) ) || ( ! $settings['post_meta'] && 'yes' == get_post_meta( get_queried_object_id(), 'pyre_post_meta', true ) ) ) {

			// For alternate, grid and timeline layouts return empty single-line-meta if all meta data for that position is disabled.
			if ( in_array( $layout, array( 'alternate', 'grid_timeline' ) ) && ! $settings['post_meta_author'] && ! $settings['post_meta_date'] && ! $settings['post_meta_cats'] && ! $settings['post_meta_tags'] && ! $settings['post_meta_comments'] ) {
				return '';
			}

			// Render author meta data.
			if ( $settings['post_meta_author'] ) {
				ob_start();
				the_author_posts_link();
				$author_post_link = ob_get_clean();

				// Check if rich snippets are enabled.
				if ( ! Avada()->settings->get( 'disable_date_rich_snippet_pages' ) ) {
					$metadata .= sprintf( esc_html__( 'By %s', 'Avada' ), '' . $author_post_link . '' );
				} else {
					$metadata .= sprintf( esc_html__( 'By %s', 'Avada' ), '' . $author_post_link . '' );
				}
				$metadata .= '|';
			} else { // If author meta data won't be visible, render just the invisible author rich snippet.
				$author .= avada_render_rich_snippets_for_pages( false, true, false );
			}

			$tipos=get_the_term_list( $post->ID, 'tipos', 'TIPOS: ', ', ', ' ' );

                if( $tipos ) {
                    $metadata .= '' . sprintf( esc_html__( '%s', 'Avada' ), $tipos ) . '|';
                }

			// Render the updated meta data or at least the rich snippet if enabled.
			if ( $settings['post_meta_date'] ) {
				$metadata .= avada_render_rich_snippets_for_pages( false, false, true );

				$formatted_date = get_the_time( Avada()->settings->get( 'date_format' ) );
				$date_markup = '' . $formatted_date . '|';
				$metadata .= apply_filters( 'avada_post_metadata_date', $date_markup, $formatted_date );
			} else {
				$date .= avada_render_rich_snippets_for_pages( false, false, true );
			}

			// Render rest of meta data.
			// Render categories.
			if ( $settings['post_meta_cats'] ) {
				ob_start();
				the_category( ', ' );
				$categories = ob_get_clean();

				if ( $categories ) {
					$metadata .= ( $settings['post_meta_tags'] ) ? sprintf( esc_html__( 'Categories: %s', 'Avada' ), $categories ) : $categories;
					$metadata .= '|';
				}
			}

			// Render tags.
			if ( $settings['post_meta_tags'] ) {
				ob_start();
				the_tags( '' );
				$tags = ob_get_clean();

				if ( $tags ) {
					$metadata .= '' . sprintf( esc_html__( 'Tags: %s', 'Avada' ), $tags ) . '|';
				}
            }

			// Render comments.
			if ( $settings['post_meta_comments'] && 'grid_timeline' !== $layout ) {
				ob_start();
				comments_popup_link( esc_html__( '0 Comments', 'Avada' ), esc_html__( '1 Comment', 'Avada' ), esc_html__( '% Comments', 'Avada' ) );
				$comments = ob_get_clean();
				$metadata .= '' . $comments . '';
			}

			// Render the HTML wrappers for the different layouts.
			if ( $metadata ) {
				$metadata = $author . $date . $metadata;

				if ( 'single' == $layout ) {
					$html .= '
' . $metadata . '
'; } elseif ( in_array( $layout, array( 'alternate', 'grid_timeline' ) ) ) { $html .= '

' . $metadata . '

'; } else { $html .= '
' . $metadata . '
'; } } else { $html .= $author . $date; } } else { // Render author and updated rich snippets for grid and timeline layouts. if ( Avada()->settings->get( 'disable_date_rich_snippet_pages' ) ) { $html .= avada_render_rich_snippets_for_pages( false ); } } return apply_filters( 'avada_post_metadata_markup', $html ); } }

Si en los cambios que has hecho no ves el resultado o quieres hacer cualquier otro cambio en estos metatags. Ponte en contacto con nosotros.



This post first appeared on Taller De Wordpress, please read the originial post: here

Share the post

Mostrar categorías o etiquetas de un Custom Post Type en metatags de AVADA

×

Subscribe to Taller De Wordpress

Get updates delivered right to your inbox!

Thank you for your subscription

×