{"id":228577,"date":"2022-10-28T11:57:00","date_gmt":"2022-10-28T08:57:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228577"},"modified":"2022-11-09T03:06:08","modified_gmt":"2022-11-09T00:06:08","slug":"ladda-alla-anpassade-wordpress-faelt-via-databasfraaga","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/ladda-alla-anpassade-wordpress-faelt-via-databasfraaga\/","title":{"rendered":"Ladda alla anpassade WordPress-f\u00e4lt via databasfr\u00e5ga"},"content":{"rendered":"<p>N\u00e4r jag h\u00e4mtar information fr\u00e5n WordPress-databasen f\u00f6redrar jag att undvika att anv\u00e4nda direkta databasfr\u00e5gor, men det finns tillf\u00e4llen d\u00e5 de kan vara anv\u00e4ndbara (och det \u00e4r viktigt att det g\u00f6rs r\u00e4tt).<\/p>\n<p>Ett anv\u00e4ndningsfall d\u00e4r det kan vara till hj\u00e4lp \u00e4r n\u00e4r du beh\u00f6ver h\u00e4mta en upps\u00e4ttning data av en enda typ. Exempel: S\u00e4g att du m\u00e5ste ladda alla anpassade WordPress-f\u00e4lt.<\/p>\n<p>N\u00e4r detta skrivs finns det ingen funktion som jag \u00e4r medveten om som kommer att g\u00f6ra detta, s\u00e5 h\u00e4r \u00e4r hur jag fr\u00e5gar databasen att g\u00f6ra det.<\/p>\n<h2>Ladda alla anpassade WordPress-f\u00e4lt<\/h2>\n<p>Det finns flera saker att notera om anpassade f\u00e4lt som \u00e4r associerade med ett givet inl\u00e4gg:<\/p>\n<ul>\n<li>anpassade f\u00e4lt lagras i postens metadata,<\/li>\n<li>anpassade f\u00e4lt anses vara privata, s\u00e5 de har ett understreck f\u00f6re,<\/li>\n<li>WordPress-kodningsstandarderna kommer inte att gilla detta (s\u00e5 du kan beh\u00f6va ignorera standarderna)<\/li>\n<\/ul>\n<p>Du kan l\u00e4sa allt om dem i <a href=\"https:\/\/codex.wordpress.org\/Custom_Fields\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Codex<\/a>.<\/p>\n<p>Och ja, det \u00e4r l\u00e4tt att f\u00e5 all anpassad information f\u00f6r ett enda inl\u00e4gg. Men om du arbetar med ett projekt d\u00e4r du beh\u00f6ver h\u00e4mta alla anpassade f\u00e4lt, n\u00e4mligen de som \u00e4r privata, m\u00e5ste du se till att du s\u00f6ker efter str\u00e4ngar som b\u00f6rjar med ett understreck.<\/p>\n<p>S\u00e5 f\u00f6r att ladda alla anpassade WordPress-f\u00e4lt i databasen, <a href=\"https:\/\/gist.github.com\/tommcfarlin\/206b5b224488db5ba5e28ee106286695\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">h\u00e4r \u00e4r fr\u00e5gan jag anv\u00e4nder<\/a> :<\/p>\n<pre><code>&lt;?php\n\nfunction get_the_custom_fields() {\n\n    global $wpdb;\n\n    $results = $wpdb-&gt;get_results(\n        $wpdb-&gt;prepare(\n            \"\n            SELECT meta_key, meta_value\n            FROM   $wpdb-&gt;postmeta\n            WHERE  meta_key REGEXP '%s'\n            \", '^[_]') );\n\n    return $results;\n}\n<\/code><\/pre>\n<p>N\u00e5gra saker att notera om ovanst\u00e5ende fr\u00e5ga:<\/p>\n<ul>\n<li>Jag anv\u00e4nder <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wpdb\/prepare\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">f\u00f6rberedelsefunktionen<\/a> f\u00f6re <a href=\"https:\/\/developer.wordpress.org\/reference\/classes\/wpdb\/get_results\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">get_results<\/a>. Detta \u00e4r f\u00f6r parametrering och s\u00e4kerhet. Om det \u00e4r nytt f\u00f6r dig rekommenderar jag att du l\u00e4ser <a href=\"https:\/\/codex.wordpress.org\/Class_Reference\/wpdb#Protect_Queries_Against_SQL_Injection_Attacks\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">den h\u00e4r artikeln<\/a>.<\/li>\n<li>Detta returnerar alla meta-nycklar och metav\u00e4rden i en array,<\/li>\n<li>Beroende p\u00e5 hur m\u00e5nga poster du vill returnera kan detta ta lite tid (och b\u00f6r kanske g\u00f6ras i omg\u00e5ngar).<\/li>\n<\/ul>\n<p>Slutligen, f\u00f6r de som \u00e4r nyfikna, index finns inte p\u00e5 kolumnen meta_value utan p\u00e5 meta_key-kolumnen.<\/p>\n<p>Kolumnerna i Post Meta-tabellen med index.<\/p>\n<p>S\u00e5 om du v\u00e4ljer att \u00e4ndra fr\u00e5gan och vill anv\u00e4nda kolumner som har index, se meta_id, post_id och meta_key.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Med hj\u00e4lp av en direkt databasfr\u00e5ga kan du ladda alla anpassade WordPress-f\u00e4lt. S\u00e5 h\u00e4r g\u00f6r du det p\u00e5 ett s\u00e4kert s\u00e4tt.<\/p>\n","protected":false},"author":1,"featured_media":220737,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[901,724,868],"tags":[1173],"class_list":["post-228577","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-koda","category-utvecklaren","category-wordpress-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/228577","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=228577"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/228577\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/220737"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=228577"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=228577"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=228577"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}