/**
* Plugin Name: Auto SEO Meta
* Description: Автогенерация SEO meta через Groq API. Multi-geo.
* Version: 1.0
*/
if (!defined('ABSPATH')) exit;
if (!defined('AUTO_SEO_GROQ_KEY')) define('AUTO_SEO_GROQ_KEY', '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');
if (!defined('AUTO_SEO_MODEL')) define('AUTO_SEO_MODEL', 'llama-3.3-70b-versatile');
if (!defined('AUTO_SEO_PLUGIN')) define('AUTO_SEO_PLUGIN', 'yoast');
if (!defined('AUTO_SEO_LANG')) define('AUTO_SEO_LANG', 'English');
if (!function_exists('auto_seo_meta_keys')) {
add_action('save_post', 'auto_seo_on_save', 20, 3);
function auto_seo_meta_keys() {
$map = [
'rankmath' => ['title' => 'rank_math_title', 'desc' => 'rank_math_description'],
'yoast' => ['title' => '_yoast_wpseo_title', 'desc' => '_yoast_wpseo_metadesc'],
'seopress' => ['title' => '_seopress_titles_title', 'desc' => '_seopress_titles_desc'],
'aioseo' => ['title' => '_aioseo_title', 'desc' => '_aioseo_description'],
];
return $map[AUTO_SEO_PLUGIN] ?? $map['rankmath'];
}
function auto_seo_on_save($post_id, $post, $update) {
if (wp_is_post_revision($post_id) || wp_is_post_autosave($post_id)) return;
if ($post->post_status !== 'publish') return;
if (!in_array($post->post_type, ['post', 'page'])) return;
$keys = auto_seo_meta_keys();
$existing_t = get_post_meta($post_id, $keys['title'], true);
$existing_d = get_post_meta($post_id, $keys['desc'], true);
if (!empty($existing_t) && !empty($existing_d)) return;
$seo = auto_seo_generate($post);
if (!$seo) return;
if (empty($existing_t)) update_post_meta($post_id, $keys['title'], $seo['title']);
if (empty($existing_d)) update_post_meta($post_id, $keys['desc'], $seo['description']);
}
function auto_seo_generate($post) {
$title = $post->post_title;
$content = wp_strip_all_tags($post->post_content);
$content = mb_substr($content, 0, 3000);
if (empty($content) && empty($title)) return false;
$site_name = get_bloginfo('name');
$site_desc = get_bloginfo('description');
$domain = parse_url(home_url(), PHP_URL_HOST);
$lang = AUTO_SEO_LANG;
$prompt = "You are an SEO expert. Generate SEO meta title (max 60 chars) and description (max 155 chars) for this webpage.\n\n";
$prompt .= "Output language: {$lang}\n";
$prompt .= "Site: {$site_name} ({$domain})\n";
if ($site_desc) $prompt .= "Site tagline: {$site_desc}\n";
$prompt .= "\nPage title: {$title}\n\n";
$prompt .= "Content:\n{$content}\n\n";
$prompt .= "Rules:\n- Title max 60 chars, includes main keyword\n- Description max 155 chars, compelling\n- Output in {$lang} only\n- No quotes\n- Output ONLY valid JSON:\n";
$prompt .= '{"title":"...","description":"..."}';
$response = wp_remote_post('https://api.groq.com/openai/v1/chat/completions', [
'timeout' => 30,
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . AUTO_SEO_GROQ_KEY,
],
'body' => json_encode([
'model' => AUTO_SEO_MODEL,
'messages' => [['role' => 'user', 'content' => $prompt]],
'temperature' => 0.7,
'max_tokens' => 300,
'response_format' => ['type' => 'json_object'],
])
]);
if (is_wp_error($response)) {
error_log('Auto SEO error: ' . $response->get_error_message());
return false;
}
$code = wp_remote_retrieve_response_code($response);
$body = json_decode(wp_remote_retrieve_body($response), true);
if ($code !== 200) {
error_log('Auto SEO HTTP ' . $code . ': ' . wp_remote_retrieve_body($response));
return false;
}
$text = $body['choices'][0]['message']['content'] ?? '';
if (empty($text)) return false;
$text = preg_replace('/^```json\s*|\s*```$/m', '', trim($text));
$seo = json_decode($text, true);
if (!isset($seo['title']) || !isset($seo['description'])) return false;
return [
'title' => mb_substr($seo['title'], 0, 60),
'description' => mb_substr($seo['description'], 0, 155),
];
}
add_action('add_meta_boxes', function() {
add_meta_box('auto_seo', 'Auto SEO', 'auto_seo_metabox', ['post', 'page'], 'side');
});
function auto_seo_metabox($post) {
$keys = auto_seo_meta_keys();
$t = get_post_meta($post->ID, $keys['title'], true);
$d = get_post_meta($post->ID, $keys['desc'], true);
echo '
Title: ' . esc_html($t ?: '—') . '
';
echo 'Description: ' . esc_html($d ?: '—') . '
';
$url = wp_nonce_url(admin_url('admin-post.php?action=auto_seo_regen&post_id=' . $post->ID), 'auto_seo_' . $post->ID);
echo 'Regenerate
';
}
add_action('admin_post_auto_seo_regen', function() {
$post_id = intval($_GET['post_id'] ?? 0);
if (!current_user_can('edit_post', $post_id)) wp_die('No permission');
check_admin_referer('auto_seo_' . $post_id);
$keys = auto_seo_meta_keys();
delete_post_meta($post_id, $keys['title']);
delete_post_meta($post_id, $keys['desc']);
auto_seo_on_save($post_id, get_post($post_id), true);
wp_redirect(get_edit_post_link($post_id, 'raw'));
exit;
});
} // end function_exists guard
Niy? Mostbet Canl? Kazinosunu Virtual Oyunlardan Seçm?liyik v? Tersin?? - Biotin Tablets
Niy? Mostbet Canl? Kazinosunu Virtual Oyunlardan Seçm?liyik v? Tersin??
Müasir dövrd? kazino seçimi, oyunçular?n ?yl?nc? seçiml?rini geni?l?ndirir. Canl? kazinolar, virtual oyunlarla müqayis?d? daha çox realiz? edilmi? v? qar??l?ql? t?crüb? t?qdim edirl?r. Bu m?qal?d?, Mostbet canl? kazinosunun üstünlükl?rini v? virtual oyunlar?n t?klif etdiyi rahatl??? müqayis? ed?c?yik. ?ki mühit aras?nda seçim etm?k, ??xsi seçim v? oyun t?crüb?si il? ba?l?d?r. G?lin, h?r iki variant?n üstünlükl?rin? daha d?rind?n baxaq.
Canl? Kazinolar?n Üstünlükl?ri
Canl? kazinolar, oyunçulara öz evl?rinin rahatl???nda real kazinolar?n atmosferini t?qdim edir. Buna gör? d?, insanlar bu seçimi daha c?lbedici hesab edirl?r. Canl? kazinolar?n bir neç? ?sas üstünlüyü vard?r:
Real vaxtl? oyun t?crüb?si: Oyunçular canl? dilerl?rl? qar??l?ql? ?laq?d? olurlar, bu da oyunun h?y?can?n? art?r?r.
Vizual c?zb ed?n mühit: Canl? yay?m video keyfiyy?ti il? siz oyunun h?r detall?n? gör? bilirsiniz.
?nteraktiv imkanlar: Oyunçular aras?nda söhb?t imkan? ver?r?k, dost canl?l??? mühitini yarad?r.
Strategiya t?tbiqi: Oyunda real zaman k?siyind? strategiya qurmaq, oyunçulara ?lav? imkanlar t?qdim edir.
Funksional seçiml?r: Canl? kazinolar, bir çox oyun növl?rini t?qdim edir, bunlara rulet, blackjack v? baccarat daxildir.
Virtual Oyunlar?n Üstünlükl?ri
Virtual oyunlar, daha çox s?rb?stlik v? rahatl?q t?qdim edir. Oyuncular, ist?dikl?ri zaman v? yerd? oynama imkan? qazan?rlar. Virtual oyunlar?n ?sas üstünlükl?ri a?a??dak?lard?r:
24/7 ?lçatanl?q: ?st?diyiniz zaman, ist?diyiniz yerd?n giri? ed? bil?rsiniz.
Azad seçim vari?ntlar?: Bir çox f?rqli oyunlar aras?nda seçim etm?k imkan? sizi yormaz.
Rahats?zl?qs?z oyun t?crüb?si: Oyun zaman? narahat olmadan oynayaraq, özünüzü rahat hiss edirsiniz.
Bonuslar v? t??viq proqramlar?: Virtual kazinolar, qeydiyyat bonuslar? v? dig?r t??viql?rl? doludur.
?nteraktiv olmadan oynama: Canl? dilerl?rin olmamas?, b?zi oyunçulara daha rahat bir oyun mühiti yarad?r.
Canl? v? Virtual Oyunlar?n Xüsusiyy?tl?ri Aras?ndak? F?rql?r
Canl? kazinolar v? virtual oyunlar, oyun t?crüb?si bax?m?ndan ciddi f?rql?r? sahibdirl?r. Bunlar? a?a??dak? kimi d?y?rl?ndirm?k mümkündür:
Oyun Tipl?ri: Canl? oyunlar daha çox s?rb?st v? qar??l?ql? oyun növl?ri t?klif ed?rk?n, virtual oyunlar daha geni? bir seçim imkan?na malikdir.
Ümumi H?y?can: Canl? kazinolar, oyun atmosferini daha real bir ??kild? ?ks etdirir, bu da h?y?canlanma hissini art?r?r.
Üstünlük ?st?rim: Oyunçular?n özl?rin? uy?un oyun üslubunu seçm?si, h?r iki variant?n c?lb edici t?r?fidir.
Bonuslar: Virtual kazinolar?n t?qdim etdiyi bonuslar, yeni oyunçular üçün c?lbedici olur.
N?tic?
Canl? Mostbet kazinolar? v? virtual oyunlar aras?nda seçim, ??xsi zövq v? oyun t?crüb?sin? ba?l?d?r. Canl? kazinolar, real zamanl? oyun atmosferi v? interaktiv xüsusiyy?tl?ri il? c?lb edir. Bununla yana??, virtual oyunlar, rahatl?q v? fleksibilite il? oyunçulara öz t?rzini seçm?k imkan? tan?y?r. N?tic?d?, h?r iki variant?n özün?m?xsus üstünlükl?ri vard?r, buna gör? d? oyunçular h?r birinin faydalar?n? n?z?r? almal?d?lar.
Tez-tez Veril?n Suallar (FAQ)
Canl? kazinolar niy? daha h?y?canl?d?r? Canl? dilerl?r v? real vaxtl? oyun mühiti say?sind? daha c?lbedici olur.
Virtual oyunlar?n üstünlükl?ri n?l?rdir? Rahatl?q, azad seçim v? oyun zaman? t?zyiq olmamas? ?sas üstünlükl?rdir.
Canl? v? virtual oyunlar aras?nda hans? biri daha yax??d?r? Bu, ??xsi seçiml?r? ba?l?d?r; h?r iki variant?n öz dürüst faydalar? var.
Bonuslar hans? kazino növünd? daha yax??d?r? Ad?t?n, virtual kazinolar daha çox bonus v? t??viq proqramlar? t?qdim edirl?r.
Canl? kazinoda oynamaq üçün hans? ??rait var? Yaln?z internet ba?lant?s? v? uy?un cihaz kifay?tdir.
Post navigation