Plugin WordPress SEO oleh Yoast memungkinkan pengguna untuk menambahkan judul SEO dan deskripsi meta ke halaman arsip istilah taksonomi. Ini kemudian digunakan di kepala dokumen.
Saya mencoba untuk menampilkan judul SEO dari istilah taksonomi sebagai H1 dalam templat arsip taksonomi saya.
Untuk melakukan ini dalam posting, jenis posting atau halaman mudah:
echo get_post_meta($post->ID, '_yoast_wpseo_title', true);
Pada templat arsip ini tidak berfungsi.
Adakah yang tahu cara membuatnya bekerja?
Contoh tangkapan layar
Ini adalah judul istilah tag tertentu. Saya mencoba untuk menampilkan judul ini - tetapi kemudian untuk istilah taksonomi khusus - di template arsip saya.
Kode akhir
Inilah yang akhirnya saya gunakan dalam archive.php
template saya . Ini berfungsi jika Anda menggunakan taksonomi khusus. Untuk tag atau kategori, lihat jawaban Mike Madern di bawah ini.
<h1 class="archive-title">
<?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>
sumber
$tag_id
.get_queried_object()->term_id
, alih-alihget_query_var()
, karena yang pertama mengembalikan id, yang terakhir mengembalikan siput, membuat kode melempar pemberitahuan "indeks tidak terdefinisi". Juga, berhati-hati untuk memeriksa apakah ada yang sesuatu yang ditetapkan pada$meta['post_tag|category']
, karena Anda akan mendapatkan indeks pemberitahuan terdefinisi juga. (WP 4.2.2, btw)Pada halaman arsip di loop posting tambahkan baris kode berikut untuk membuatnya berfungsi
Katakan apakah itu berfungsi untuk Anda atau saya akan memberikan solusi lain.
sumber
Mendapatkan kata kunci fokus untuk kategori dan tag
Untuk mendapatkan kata kunci fokus Kategori atau Tag secara terprogram, Anda dapat menggunakan salah satu dari dua metode ini:
Ini pada dasarnya adalah pendekatan yang digunakan oleh Mike di akhir jabatannya.
atau
Saya cenderung memilih pendekatan kedua karena dengan cara ini saya tidak perlu mengambil atau peduli tentang mendapatkan opsi meta sendiri.
Dalam Anda
functions.php
, Anda mungkin ingin mengujiif class_exists( 'WPSEO_Taxonomy_Meta' )
dan kemudian mungkin membungkus fungsi Yoast menjadi fungsi Anda sendiri, agar aman jika Anda pernah berhenti menggunakan Yoast SEO di telepon.Beberapa latar belakang
Seperti disebutkan dalam pertanyaan awal, sesuatu seperti
get_post_meta( $tag->term_id, '_yoast_wpseo_focuskw', true);
tidak akan berfungsi untuk kategori dan halaman (tidak akan menghasilkan apa-apa.)Jadi mengapa demikian?
Itu karena, untuk kategori dan tag, kata kunci fokus disimpan di tempat lain dalam database. Alih-alih disimpan di dalam
wp_postmeta
meja seperti biasa, itu terkubur jauh di dalamwp_options
meja, sebagai objek JSON.Metode di atas mari kita mengakses nilai-nilai ini.
Akhirnya, jika Anda seperti saya dan tidak dapat mengingat nama taksonomi (misalnya: tidak jelas mengapa tag menggunakan taksonomi
post_tag
dan bukan hanyatag
, cukup periksa URL ketika Anda mengedit kategori atau tag: itu akan menampilkan…taxonomy=category…
atau sejenisnya.sumber
Balas Mendapatkan kata kunci fokus untuk kategori dan tag
// itu bekerja terima kasih
// dengan api istirahat
dapatkan / wp-json / wp / v2 / kategori? slug =
slug_name
plugin.in menggunakan Metode 1
ubah jalur
$meta['post_tag'][$tag->term_id]['wpseo_focuskw'];
$meta['category'][$param_post_id]['wpseo_focuskw'];
sumber