Un utente ha chiesto informazioni su Developing with WordPress di Wordpress

come prendere il titolo di una pagina?

Un utente ha chiesto 👇

Provo diversi ganci come wp_title e pre_get_document_title ma non riesco a farlo funzionare.

Sto cercando di modificare il titolo della pagina del modello di archivio del tipo di post

		   add_filter('pre_get_document_title', 'new_filter_title');

		  function new_filter_title($title)
		  
		  {
			if ( is_page('1637') && $id = get_queried_object_id() )
			{
		  
			  $areas = get_query_var('area');
			  $area = get_term_by('slug', $areas, 'area');
			  $models = get_query_var('serie');
			  $model = get_term_by('slug', $models, 'serie');
		  
			  $title = '';
		  
			  if($model && $model) $title .= $model->name . ' Used';
			  else $title .= 'Used';
		  
			  $title .= ' Cars For Sale';
		  
			  if($area && $area) $title .= ' In ' . $area->name;

			  $title .= ' on ' . get_bloginfo('name');
		  
		  
		  
			  return $title;
			}
		  
			return $title;
		  } 

Cosa mi sto perdendo?

Voglio aggiungerlo, ho anche installato un plugin SEO (Yoast)

Questo argomento è stato modificato 2 anni, 1 mese fa da. Questo argomento è stato modificato 2 anni, 1 mese fa da.

(@bcworkz)

2 anni, 1 mese fa

Credo che Yoast violi il normale titolo della pagina a tema, e quindi anche il tuo codice è stato violato. IIRC, puoi disattivare questa funzione nelle impostazioni di Yoast? Quindi il tuo codice dovrebbe funzionare, ma dipende davvero dal tuo tema. Hai il codice giusto per la maggior parte dei temi moderni che si basano sul supporto dei temi per i tuoi titoli. Il tuo tema potrebbe essere il tema insolito che rende i titoli in un modo diverso.

Prova a passare un argomento di grande priorità affinché la tua richiamata abbia successo.
add_filter('pre_get_document_title', 'new_filter_title', 9999 );

Per i dettagli su come lavorare con i titoli quando Yoast è attivo, ti suggerisco di porre una domanda nel loro forum di supporto dedicato.

(@oieniuz)

2 anni, 1 mese fa

Stai bene. I titoli del tema sono realizzati in modo diverso. questo è il codice che usano per visualizzare il titolo.

}

	$alignment                           = get_post_meta($post_id, 'alignment', true);
    $title_style_h1                      = array();
    $title_style_subtitle                = array();
    $title_box_bg_color                  = get_post_meta( $post_id, 'title_box_bg_color', true );
    $title_box_font_color                = get_post_meta( $post_id, 'title_box_font_color', true );
    $title_box_line_color                = get_post_meta( $post_id, 'title_box_line_color', true );
    $title_box_custom_bg_image           = get_post_meta( $post_id, 'title_box_custom_bg_image', true );
    $title_tag                           = (empty(get_post_meta( $post_id, 'title_tag', true ))) ? 'h2' : get_post_meta( $post_id, 'title_tag', true );
    $sub_title                           = get_post_meta( $post_id, 'sub_title', true );
    $breadcrumbs                         = get_post_meta( $post_id, 'breadcrumbs', true );
    $breadcrumbs_font_color              = get_post_meta( $post_id, 'breadcrumbs_font_color', true );
    $title_box_subtitle_font_color       = get_post_meta( $post_id, 'title_box_subtitle_font_color', true );
	$sub_title_instead                   = get_post_meta($post_id, 'sub_title_instead', true);

	if( empty($alignment) || is_post_type_archive(stm_listings_post_type()) ) {
		$alignment = 'left';
	}

Penso che questo sia il codice effettivo visualizzato nel titolo.

$title_tag = (empty(get_post_meta( $post_id, 'title_tag', true ))) ? 'h2' : get_post_meta( $post_id, 'title_tag', true );

C’è una possibilità di prenderlo?

Un’altra soluzione a cui potrei pensare, invece di provare a inserire un hook nel titolo della pagina, è come riecheggiare (come titolo H1) il meta-titolo yoast (ho impostato lo stesso codice con wpseo_title)

L’ho provato con questo codice

echo get_post_meta($post->ID, '_yoast_wpseo_title', true);

Ma lo penso _yoast_wpseo_title la chiave del titolo restituisce il tipo di lavoro e non il titolo personalizzato appena creato

Ho provato anche questo codice …

<h1 class="archive-title">  --------------> this is Line 3
<?php
if ( is_tax() ) :                                                                   
    $taxonomy = get_queried_object()->taxonomy;
    $term_id = get_queried_object()->term_id;
    $meta   = get_option( 'wpseo_taxonomy_meta' );
    $title  = $meta[$taxonomy][$term_id]['wpseo_title'];
    //printf( '<pre>%s</pre>', print_r( get_option( 'wpseo_taxonomy_meta' ), 1 ) );
    if ( isset($meta) && !empty($title) ) :         
        echo apply_filters( 'the_title', $title );
    else :
        single_term_title();    
    endif;
endif;                              
?>
</h1> 

Questo trattiene a Parse error: syntax error, unexpected '<', expecting end of file in .......................stm_classic_filter.php on line 3 Non importa cosa faccio

Cosa raccomanderesti?

(@bcworkz)

2 anni, 1 mese fa

Il codice title_tag del tema sembra contenere solo il tag di intestazione della dimensione da utilizzare (h2, h3, ecc.), Non il titolo effettivo. Non puoi mai usare il sorgente per i titoli che desideri, yoast, la tua versione, la versione standard di WP da get_documant_title () o wp_title (), ecc. Non importa chi usi, stai ancora superando il fallimento implementato dal tuo tema. . Se non è chiaro sul modello di intestazione del tema o su una delle relative sezioni del modello, il titolo potrebbe essere generato sull’azione “wp_head”. Per vedere tutte le funzioni chiamate per questa azione, scarica la stringa globale $ wp_filter. Tutto ciò di cui hai bisogno è la parte con la chiave “wp_head”. Molti di loro verranno elencati. Qualsiasi prefisso con wp_ Cuore WP ovviamente. Stai cercando funzioni del tema, si spera che siano costantemente preimpostate e facili da vedere.

Quindi si tratta di trovare la dichiarazione della funzione nel codice sorgente del tema e determinare chi è responsabile del titolo. Una volta trovata la funzione giusta, puoi rimuoverla dallo stack delle azioni e sostituirla con la tua. Ovviamente puoi rimuoverlo solo dopo averlo aggiunto. L’aggancio a “after_theme_setup” dovrebbe essere abbastanza tardi da rimuovere Hook il tema.

Se hai ancora difficoltà a decidere su una violazione, ti incoraggio a porre domande sui temi a tema attraverso il loro canale di supporto.

Was this helpful?

0 / 0

Lascia un commento 0

Your email address will not be published. Required fields are marked *