اذهب إلى المحتوى
  • 0

كيف أحل مشكل term_exists الذي يعيد قيمة null على ووردبريس؟

Badraoui

السؤال

تعيد لي الدالة term_exists القيمة null رغم وجود term:

$name = "my name"
$taxonomy_name = "geographictermsmaroc"
$args = array("slug" => "everything", "parent" => 0)

var_dump(term_exists($name, $taxonomy_name, $args)); // Returns NULL (not 0)

if ( !term_exists($name, $taxonomy_name, $args) ) {
    $foo = wp_insert_term($name, $taxonomy_name, $args);
    var_dump($foo); // Returns the array below
}

object(WP_Error)#4193 (2) {
  ["errors"]=>
  array(1) {
    ["term_exists"]=>
    array(1) {כל האזורים
      [0]=>
      string(77) "Le Lorem Ipsum est simplement du faux texte employé dans la composition et la mise en page avant impression"
    }
  }
  ["error_data"]=>
  array(1) {
    ["term_exists"]=>
    string(3) "699"
  }
}

وقيمة term موجودة على قاعدة البيانات كما هو موضح:

mysql> select * from wp_term_taxonomy where taxonomy='geographictermsisrael';
+------------------+---------+-----------------------+-------------+--------+-------+
| term_taxonomy_id | term_id | taxonomy              | description | parent | count |
+------------------+---------+-----------------------+-------------+--------+-------+
|              738 |     699 | geographictermsmaroc  |             |      0 |     0 |
+------------------+---------+-----------------------+-------------+--------+-------+
1 row in set (0.00 sec)

mysql> select * from wp_terms where term_id=699;
+---------+---------------------+------------+------------+
| term_id | name                | slug       | term_group |
+---------+---------------------+------------+------------+
|     699 | my name          | everything |          0 |
+---------+---------------------+------------+------------+
1 row in set (0.00 sec)

mysql> select * from wp_term_relationships where term_taxonomy_id=738;
Empty set (0.00 sec)

ما هو المشكل؟ وكيف أحلّه؟

تم التعديل في بواسطة Badraoui
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

من خلال ()term_exists يتضح أن القيمة العائدة منها هي عددية -integer- وليست مصفوفة -array-، وكدليل على ذلك، أُرفق في جوابي هذا التوثق الرسمي من موقع ووردبريس:

Parameters
$term
(integer|string) (required) The term to check
Default: None
$taxonomy
(string) (optional) The taxonomy name to use
Default: ''
$parent
(integer) (optional) $parent ID of parent term under which to confine the exists search
Default: 0

إذن كلّ ما عليك هو تمرير القيمة الصحيحة لكي يعمل السكريبت الخاص بك:

var_dump(term_exists($name, $taxonomy_name)); 

ملاحظة: 0 هي القيمة الافتراضية، لن تحتاج للتأكد ذلك.

تم التعديل في بواسطة E.Nourddine
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...