Wp option (WP-CLI)
wp option: beheer instellingen die in tabel wp_options
worden bijgehouden. Dit zijn object-onafhankelijke instellingen en je kunt dus niet de options opvragen die bij een specifieke pagina, post of product horen. Dit commando is een belangrijk stuk gereedschap om een site volledig via de shell te beheren. Temeer daar dit commando overweg kan met serialised data - Iets waar ik op SQL-niveau moeite mee heb.
$ wp help option NAME wp option DESCRIPTION Retrieves and sets site options, including plugin and WordPress settings. SYNOPSIS wp option <command> SUBCOMMANDS add Adds a new option value. delete Deletes an option. get Gets the value for an option. list Lists options and their values. patch Updates a nested value in an option. pluck Gets a nested value from an option. update Updates an option value. See the [Plugin Settings API][1] and the [Theme Options][2] for more information on adding customized options. --- [1] https://developer.wordpress.org/plugins/settings/settings-api/ [2] https://developer.wordpress.org/themes/customize-api/ EXAMPLES # Get site URL. $ wp option get siteurl http://example.com # Add option. $ wp option add my_option foobar Success: Added 'my_option' option. # Update option. $ wp option update my_option '{"foo": "bar"}' --format=json Success: Updated 'my_option' option. # Delete option. $ wp option delete my_option Success: Deleted 'my_option' option.
wp option add
Adds a new option value.
$wp help option add NAME wp option add DESCRIPTION Adds a new option value. SYNOPSIS wp option add <key> [<value>] [--format=<format>] [--autoload=<autoload>] Errors if the option already exists. OPTIONS <key> The name of the option to add. [<value>] The value of the option to add. If ommited, the value is read from STDIN. [--format=<format>] The serialization format for the value. --- default: plaintext options: - plaintext - json --- [--autoload=<autoload>] Should this option be automatically loaded. --- options: - 'yes' - 'no' --- EXAMPLES # Create an option by reading a JSON file. $ wp option add my_option --format=json < config.json Success: Added 'my_option' option.
wp option delete
Deletes an option.
wp option get
- Gets the value for an option - Als het een veld met serialised data betreft, krijg je dat complete veld
- Je kunt met dit commando alleen individuele velden opvragen - Niet een deel van de boom, oftewel subvelden binnen een serialised veld
- Wil je een deel van de boom zien (subvelden), gebruik dan
wp option pluck
.
$ wp help option get wp option get DESCRIPTION Gets the value for an option. SYNOPSIS wp option get <key> [--format=<format>] OPTIONS <key> Key for the option. [--format=<format>] Get value in a particular format. --- default: var_export options: - var_export - json - yaml --- EXAMPLES # Get option. $ wp option get home http://example.com # Get blog description. $ wp option get blogdescription A random blog description # Get blog name $ wp option get blogname A random blog name # Get admin email. $ wp option get admin_email someone@example.com # Get option in JSON format. $ wp option get active_plugins --format=json {"0":"dynamically-dynamic-sidebar\/dynamically-dynamic-sidebar.php","1":"monster-widget\/monster-widget.php","2":"show-current-template\/show-current-template.php","3":"theme-check\/theme-check.php","5":"wordpress-importer\/wordpress-importer.php"}
Voorbeelden
wp option get admin_email info@example.com
Dit werkt ook voor serialised data:
wp option get options_footer_links_1_0_link array ( 'title' => 'Widgets GLX', 'url' => 'http://en.s1/shop/glx/', 'target' => '', )
wp option list
Met wp option list
krijg je een lijst van alle opties + waardes. Dat kan een flinke lijst zijn en het commando doet er al snel een minuut over voordat output verschijnt.
Voorbeelden hoe dit handzamer te maken:
wp option list --field=option_name
wp option list | grep woocommerce > tmp.txt
- Daarna openen in editor.
wp option patch
$ wp help option patch NAME wp option patch DESCRIPTION Updates a nested value in an option. SYNOPSIS wp option patch <action> <key> <key-path>... [<value>] [--format=<format>] OPTIONS <action> Patch action to perform. --- options: - insert - update - delete --- <key> The option name. <key-path>... The name(s) of the keys within the value to locate the value to patch. [<value>] The new value. If omitted, the value is read from STDIN. [--format=<format>] The serialization format for the value. --- default: plaintext options: - plaintext - json ---
wp option patch delete
wp option patch insert
wp option patch update
Update een serialised veld:
- Subvelden geef je aan door alle tussenliggende elementen te benoemen (spatie-gescheiden)
- LET OP: Het huidige serialised veld/subboom wordt overschreven door dit commando. Als je bv. tussenliggende elementen vergeet te vermelden, wis je het complete datamodel rondom dat veld
- Mogelijk een veilige manier om dit commando toe te passen: Lees eerst de huidige waarde uit met
wp option pluck
en update het pas daarna met dit commando. - Numerieke waardes mogen zowel met als zonder enkele/dubbele aanhalingstekens
Voorbeeld (1)
$ wp option get aws_settings array ( 'seamless' => 'true', 'cache' => 'true', 'autoupdates' => 'true', 'search_in' => array ( 'title' => 1, 'content' => 0, 'sku' => 1, 'excerpt' => 0, 'category' => 0, 'tag' => 0, 'id' => 0, ), 'outofstock' => 'true', 'stopwords' => 'a, also, am, an, and, are, as, at, be, but, by, call, can, co, con, de, do, due, eg, eight, etc, even, ever, every, for, from, full, go, had, has, hasnt, have, he, hence, her, here, his, how, ie, if, in, inc, into, is, it, its, ltd, me, my, no, none, nor, not, now, of, off, on, once, one, only, onto, or, our, ours, out, over, own, part, per, put, re, see, so, some, ten, than, that, the, their, there, these, they, this, three, thru, thus, to, too, top, un, up, us, very, via, was, we, well, were, what, when, where, who, why, will', 'synonyms' => 'buy, pay, purchase, acquire box, housing, unit, package', 'use_analytics' => 'true', 'search_field_text' => 'Zoek producten...', 'show_more_text' => 'Laat alle resultaten zien', 'not_found_text' => 'Oeps, geen zoekresultaten.', 'min_chars' => '1', 'show_loader' => 'true', 'show_clear' => 'true', 'show_more' => 'true', 'mobile_overlay' => 'false', 'show_page' => 'true', 'buttons_order' => '2', 'desc_source' => 'excerpt', 'mark_words' => 'true', 'excerpt_length' => '20', 'results_num' => '10', 'highlight' => 'true', 'show_image' => 'true', 'show_excerpt' => 'false', 'show_price' => 'true', 'show_outofstock_price' => 'true', 'show_cats' => 'false', 'show_tags' => 'false', 'show_sale' => 'true', 'show_sku' => 'false', 'show_stock' => 'false', 'show_featured' => 'false', 'search_archives' => array ( 'archive_category' => 0, 'archive_tag' => 0, ), ) $ wp option pluck aws_settings search_field_text Zoek producten... $ wp option patch update aws_settings search_field_text "Search products" Success: Updated 'aws_settings' option.
Voorbeeld: Numerieke waardes & aanhalingstekens
$ wp option pluck woocommerce_dhlpwc_settings price_option_home 6.95 $ wp option patch update woocommerce_dhlpwc_settings price_option_home "79.95" # Met dubbele aanhalingstekens Success: Updated 'woocommerce_dhlpwc_settings' option. $ wp option pluck woocommerce_dhlpwc_settings price_option_home 79.95 $ wp option patch update woocommerce_dhlpwc_settings price_option_home "79.95" # Zonder aanhalingstekens Success: Value passed for 'woocommerce_dhlpwc_settings' option is unchanged.
wp option pluck
Vraag een serialised waarde op
- Je kunt hiermee een deelboom/subveld opvragen - Dit kan niet met
wp option get
- Geef het pad van elementen op (spatie-gescheiden) om bij de betreffende subboom of het subveld te komen.
$ wp help option pluck NAME wp option pluck DESCRIPTION Gets a nested value from an option. SYNOPSIS wp option pluck <key> <key-path>... [--format=<format>] OPTIONS <key> The option name. <key-path>... The name(s) of the keys within the value to locate the value to pluck. [--format=<format>] The output format of the value. --- default: plaintext options: - plaintext - json - yaml ---
Simpel voorbeeld
wp option get options_footer_links_1_0_link array ( 'title' => 'Widget GLX', 'url' => 'http://en.s1/shop/glx/', 'target' => '', ) wp option pluck options_footer_links_1_0_link title Widget GLX
Voorbeeld nested tree
Nu wordt het leuker: Een serialised veld met een subboom:
# Display whole serial field ######################################## # # With "wp option get", you cannot select a part of the tree, only the whole tree # wp option get aws_pro_settings array ( 1 => array ( 'search_instance' => 'Search Form', 'filter_num' => '1', 'search_field_text' => 'Zoek producten...', 'show_more_text' => 'Laat alle resultaten zien', 'not_found_text' => 'Oeps, geen zoekresultaten.', 'min_chars' => '1', 'show_loader' => 'true', 'show_clear' => 'true', 'show_more' => 'true', 'mobile_overlay' => 'false', 'show_page' => 'true', 'show_addon' => 'false', 'disable_smooth' => 'false', 'buttons_order' => '2', 'filters' => array ( 1 => array ( 'filter_name' => 'All', 'style' => 'style-inline', 'mark_words' => 'true', 'excerpt_length' => '20', 'results_num' => '10', 'outofstock' => 'true', 'var_rules' => 'parent', 'on_sale' => 'true', 'product_visibility' => array ( 'visible' => '1', 'catalog' => '1', 'search' => '1', 'hidden' => '0', ), 'search_in' => array ( 'title' => 0, 'content' => 1, 'sku' => 1, 'excerpt' => 0, 'category' => '0', 'tag' => '0', 'id' => '0', 'attr' => 0, 'tax' => 0, 'meta' => 1, ), 'search_archives' => array ( 'archive_category' => '0', 'archive_tag' => '0', 'archive_tax' => '0', 'archive_attr' => '0', 'archive_users' => '0', ), 'highlight' => 'true', 'show_image' => 'true', 'show_excerpt' => 'false', 'show_result_cats' => 'false', 'show_result_brands' => '', 'show_rating' => 'false', 'show_featured' => 'false', 'show_variations' => 'false', 'show_price' => 'true', 'show_outofstock_price' => 'true', 'show_sale' => 'true', 'show_sku' => 'false', 'show_cart' => 'false', 'show_stock' => 'false', 'exclude_rel' => 'exclude', 'adv_filters' => '', 'search_in_attr' => array ( 'attr_pa_breedte' => 0, ), 'search_in_meta' => array ( 'meta_post_tools' => 1, 'meta_sku_oem' => 1, ), 'product_stock_status' => array ( 'in_stock' => 1, 'out_of_stock' => 1, 'on_backorder' => 1, ), ), ), 'cache' => 'true', 'search_logic' => 'and', 'search_exact' => 'false', 'desc_source' => 'content', 'target_blank' => 'false', 'image_source' => 'featured,gallery,content,description,default', 'default_img' => '', 'use_analytics' => 'false', ), ) # Select part of the tree ######################################## # wp option pluck aws_pro_settings 1 array ( 'search_instance' => 'Search Form', 'filter_num' => '1', 'search_field_text' => 'Zoek producten...', 'show_more_text' => 'Laat alle resultaten zien', 'not_found_text' => 'Oeps, geen zoekresultaten.', 'min_chars' => '1', 'show_loader' => 'true', 'show_clear' => 'true', 'show_more' => 'true', 'mobile_overlay' => 'false', 'show_page' => 'true', 'show_addon' => 'false', 'disable_smooth' => 'false', 'buttons_order' => '2', 'filters' => array ( 1 => array ( 'filter_name' => 'All', 'style' => 'style-inline', 'mark_words' => 'true', 'excerpt_length' => '20', 'results_num' => '10', 'outofstock' => 'true', 'var_rules' => 'parent', 'on_sale' => 'true', 'product_visibility' => array ( 'visible' => '1', 'catalog' => '1', 'search' => '1', 'hidden' => '0', ), 'search_in' => array ( 'title' => 0, 'content' => 1, 'sku' => 1, 'excerpt' => 0, 'category' => '0', 'tag' => '0', 'id' => '0', 'attr' => 0, 'tax' => 0, 'meta' => 1, ), 'search_archives' => array ( 'archive_category' => '0', 'archive_tag' => '0', 'archive_tax' => '0', 'archive_attr' => '0', 'archive_users' => '0', ), 'highlight' => 'true', 'show_image' => 'true', 'show_excerpt' => 'false', 'show_result_cats' => 'false', 'show_result_brands' => '', 'show_rating' => 'false', 'show_featured' => 'false', 'show_variations' => 'false', 'show_price' => 'true', 'show_outofstock_price' => 'true', 'show_sale' => 'true', 'show_sku' => 'false', 'show_cart' => 'false', 'show_stock' => 'false', 'exclude_rel' => 'exclude', 'adv_filters' => '', 'search_in_attr' => array ( 'attr_pa_breedte' => 0, ), 'search_in_meta' => array ( 'meta_post_tools' => 1, 'meta_sku_oem' => 1, ), 'product_stock_status' => array ( 'in_stock' => 1, 'out_of_stock' => 1, 'on_backorder' => 1, ), ), ), 'cache' => 'true', 'search_logic' => 'and', 'search_exact' => 'false', 'desc_source' => 'content', 'target_blank' => 'false', 'image_source' => 'featured,gallery,content,description,default', 'default_img' => '', 'use_analytics' => 'false', ) # Zoom in on just 1 value... ######################################## # wp option pluck aws_pro_settings 1 search_instance Search Form
Bronnen
- https://github.com/wp-cli/entity-command/issues/106
- https://guides.wp-bullet.com/using-wp-cli-to-batch-update-serialized-wp_options-settings/
wp option update
Updates an option value. Voorbeelden:
wp option update blogname "$site_title" # Site title wp option update blogdescription "$slogan" # Tagline