
php – Hapus tautan konten (internal dan eksternal), tetapi kecualikan posting di kategori tertentu
Untuk mengecualikan kategori tertentu dari fungsi filter yang menghapus tautan dari konten kiriman, Anda dapat mengubah fungsi untuk memeriksa kategori kiriman sebelum menghapus tautan.
Berikut adalah contoh bagaimana Anda dapat mengubah fungsi untuk mengecualikan kategori tertentu:
add_filter('the_content', 'removelink_content',1);
function removelink_content($content="") {
// Get the categories of the current post
$categories = get_the_category();
// Set up an array of excluded category IDs
$excluded_categories = array(2, 5, 8);
// Check if any of the categories of the current post are in the excluded categories array
$excluded = false;
foreach ( $categories as $category ) {
if ( in_array( $category->term_id, $excluded_categories ) ) {
$excluded = true;
break;
}
}
// If the post is not in an excluded category, remove the links from the content
if ( ! $excluded ) {
preg_match_all("#<a(.*?)>(.*?)</a>#i",$content, $matches);
$num = count($matches[0]);
for($i = 0;$i < $num;$i++){
$content = str_replace($matches[0][$i] , $matches[2][$i] , $content);
}
}
return $content;
}
Dalam contoh ini, fungsi pertama mendapatkan kategori dari posting saat ini menggunakan get_the_category()
fungsi. Ini kemudian mengatur larik ID kategori yang dikecualikan (dalam hal ini, ID 2, 5, dan 8). Fungsi kemudian memeriksa apakah salah satu kategori dari posting saat ini berada dalam larik kategori yang dikecualikan menggunakan in_array()
fungsi. Jika kiriman tersebut termasuk dalam kategori yang dikecualikan, maka $excluded
variabel diatur ke true
.
Jika $excluded
variabel tidak diatur ke true
, fungsi melanjutkan untuk menghapus tautan dari konten seperti sebelumnya. Jika $excluded
variabel diatur ke true
fungsi tidak melakukan apa pun dan mengembalikan konten apa adanya.
Semoga membantu! Beri tahu saya jika Anda memiliki pertanyaan.