. */ # Known/outstanding issues: # [UNCONFIRMED ISSUE] Plugin seems to keep pinging when importing an XML/WXR file even if pinging is disabled # Plugin does not seem to report any errors if it cannot write to the log file (see E2 blog for example) function SUP_add_options_page(){ if(function_exists("add_options_page")) add_options_page("UP Smart Update Pinger", "UP Smart Update Pinger", 5, basename(__FILE__), "SUP_show_options_page"); } function SUP_show_options_page(){ global $logfile; $ping = get_option("SUP_ping"); $pinglog = get_option("SUP_pinglog"); $uris = get_option("ping_sites"); $forcedpings = false; $SUP_output_log=''; $pingservicesnow = "Ping Services Now!"; $deletelogfile = "Delete Log File"; if(isset($_POST["ping"]) && $_POST["ping"] == $pingservicesnow){ $forcedpings = true; SUP_log(SUP_ping_services($forcedpings).strftime("%D %T")."\tForced pinging services (Homepage)\n\t─────\n"); }elseif(isset($_POST["submit"])){ $uris = $_POST["uris"]; $ping = 0; if($_POST["ping"] == 1) $ping = 1; $pinglog = 0; if($_POST["pinglog"] == 1) $pinglog = 1; update_option("SUP_ping", $ping); update_option("SUP_pinglog", $pinglog); update_option("ping_sites", $uris); echo '

Options saved.

'; }elseif(isset($_POST["delete"]) && $_POST["delete"] == $deletelogfile){ $fh = @fopen($logfile, "w"); if(false === @fwrite($fh, strftime("%D %T")."\tLog file deleted\n\t─────\n")){ update_option("SUP_error", 1); }else{ update_option("SUP_error", 0); } @fclose($fh); } $checked1 = ''; if($ping == 1) $checked1 = 'checked="checked"'; $checked2 = ''; if($pinglog == 1) $checked2 = 'checked="checked"'; echo '

Ultimate Plugins Smart Update Pinger

Click here for installation instructions

Click here for usage instructions

Click here for updated versions

Click here for comments and suggestions

URIs to Ping

The following services will automatically be pinged/notified when you publish normal or future timestamped posts. Not when you edit previously published posts, as WordPress does by default.

This plugin also fixes an issue with the default extended ping programming in Wordpress and pre-2.1 versions of Smart Update Pinger (it now includes the url of the new post).

NB: this list is synchronized with the original update services list.

Separate multiple service URIs with line breaks:

Ping log

These are the last 100 actions performed by the plugin. In reverse chronological order for easier reading (latest ping first).

'; SUP_get_last_log_entries(500); echo '

'; } # telling WordPress to ping if the post is new, but not if it's just been edited function SUP_ping_if_new($id){ global $wpdb, $post_title; $SUP_output_log="\t─────\n"; $SUP_ping_result=''; $forcedpings = false; if(get_option('SUP_ping') == 1 && trim(get_option('ping_sites')) != ""){ # fetches data directly from database; the function "get_post" is cached, and using it here will get the post as is was before the last save $row = mysql_fetch_array(mysql_query( // "SELECT post_date,post_modified,post_title,guid FROM $wpdb->posts WHERE id=$id")); "SELECT post_date,post_modified,post_title FROM $wpdb->posts WHERE id=$id")); # if time when created equals time when modified it is a new post, otherwise the author has edited/modified it if(!$row["post_title"]){ $SUP_output_log=strftime("%D %T")."\tNOT Pinging services (ERROR: YOU HAVE FORGOTTEN TO ENTER A POST TITLE) ...\n".$SUP_output_log; }else{ if($row["post_date"] == $row["post_modified"]){ $SUP_output_log=strftime("%D %T")."\tPinging services (New normal post: “".$row["post_title"]."”) ...\n".$SUP_output_log; $SUP_output_log=SUP_ping_services($forcedpings,get_permalink($id)).$SUP_output_log; # Try commenting the line above, and uncommenting this line below if pinging seems to be out of order. Please notify the author if it helps! # generic_ping(); }else{ // Post has been edited or it's a future post // If we have a post title it means that we are in the normal WP loop and therefore it was an edit (not a future post) if($post_title){ $SUP_output_log=strftime("%D %T")."\tNOT Pinging services (Existing post was edited: “".$row["post_title"]."”) ...\n".$SUP_output_log; }else{ $SUP_output_log=strftime("%D %T")."\tPinging services (New timestamped post: “".$row["post_title"]."”) ...\n".$SUP_output_log; $SUP_output_log=SUP_ping_services($forcedpings,get_permalink($id)).$SUP_output_log; # Try commenting the line above, and uncommenting this line below if pinging seems to be out of order. Please notify the author if it helps! # generic_ping(); } } } }else{ if (trim(get_option('ping_sites')) != ""){ $SUP_output_log=strftime("%D %T")."\tNOT Pinging services (WARNING: DISABLED BY ADMINISTRATOR)\n".$SUP_output_log; }else{ $SUP_output_log=strftime("%D %T")."\tNOT Pinging services (WARNING: EMPTY PING SERVICES LIST)\n".$SUP_output_log; } } SUP_log($SUP_output_log); } # More or less a copy of WP's "generic_ping" from functions.php, but uses another function to send the actual XML-RPC messages. function SUP_ping_services($forcedpings,$SUP_guid = ''){ $SUP_output_log=''; #$services = get_settings('ping_sites'); #UP - 17.07.07 - get_option is newer/better then get_settings $services = get_option('ping_sites'); $services = preg_replace("|(\s)+|", '$1', $services); // Kill dupe lines $services = trim($services); if ( '' != $services ) { $services = explode("\n", $services); foreach ($services as $service) $SUP_output_log=SUP_send_xmlrpc($forcedpings,$SUP_guid,$service).$SUP_output_log; } return $SUP_output_log; } # A slightly modified version of the WordPress built-in ping functionality ("weblog_ping" in functions.php). # Original version: #function weblog_ping($server = '', $path = '') { #global $wp_version; #include_once(ABSPATH . WPINC . '/class-IXR.php'); #// using a timeout of 3 seconds should be enough to cover slow servers #$client = new IXR_Client($server, ((!strlen(trim($path)) || ('/' == $path)) ? false : $path)); #$client->timeout = 3; #$client->useragent .= ' -- WordPress/'.$wp_version; #// when set to true, this outputs debug messages by itself #$client->debug = false; #$home = trailingslashit( get_option('home') ); #if ( !$client->query('weblogUpdates.extendedPing', get_option('blogname'), $home, get_bloginfo('rss2_url') ) ) // then try a normal ping #$client->query('weblogUpdates.ping', get_option('blogname'), $home); #} # This one uses correct extendedPing format (WP does not), and logs response from service. function SUP_send_xmlrpc($forcedpings,$SUP_guid = '',$server = '', $path = ''){ global $wp_version; $SUP_output_log=''; include_once (ABSPATH . WPINC . '/class-IXR.php'); // using a timeout of 5 seconds should be enough to cover slow servers (changed from 3 to 5) $client = new IXR_Client($server, ((!strlen(trim($path)) || ('/' == $path)) ? false : $path)); $client->timeout = 5; $client->useragent .= ' -- WordPress/'.$wp_version; // when set to true, this outputs debug messages by itself $client->debug = false; $home = trailingslashit( get_option('home') ); # The extendedPing format should be "blog name", "blog url", "check url" (the new URL), and "feed url". # Related Website(s) # http://www.weblogs.com/api.html # An example: # Someblog - Title # http://spaces.msn.com/someblog - Home URL # http://spaces.msn.com/someblog/PersonalSpace.aspx?something - Check/New URL # http://spaces.msn.com/someblog/feed.rss - Feed # Changed the following line therefore: # if($client->query('weblogUpdates.extendedPing', get_settings('blogname'), $home, get_bloginfo('rss2_url'), get_bloginfo('rss2_url'))) if ($forcedpings){ # If this is a forced ping it's better to use a regular ping for the homepage without an update URL (safer) if($client->query('weblogUpdates.ping', get_option('blogname'), $home)){ $SUP_output_log=strftime("%D %T")."\t► [Regular Ping] ".$server." was successfully pinged\n".$SUP_output_log; if (get_option('SUP_pinglog') == 1){ $SUP_output_log=strftime("%D %T")."\t►► Blogname: '".get_option('blogname')."'\n".$SUP_output_log; $SUP_output_log=strftime("%D %T")."\t►► Homepage: '".$home."'\n".$SUP_output_log; } }else{ $SUP_output_log=strftime("%D %T")."\t► ".$server." could not be pinged. Error message: “".$client->error->message."”\n".$SUP_output_log; } }else{ if($client->query('weblogUpdates.extendedPing', get_option('blogname'), $home, $SUP_guid, get_bloginfo('rss2_url'))){ $SUP_output_log=strftime("%D %T")."\t► [Extended Ping] ".$server." was successfully pinged\n".$SUP_output_log; if (get_option('SUP_pinglog') == 1){ $SUP_output_log=strftime("%D %T")."\t►► Blogname: '".get_option('blogname')."'\n".$SUP_output_log; $SUP_output_log=strftime("%D %T")."\t►► Homepage: '".$home."'\n".$SUP_output_log; $SUP_output_log=strftime("%D %T")."\t►► Updated : '".$SUP_guid."'\n".$SUP_output_log; $SUP_output_log=strftime("%D %T")."\t►► RSS URL : '".get_bloginfo('rss2_url')."'\n".$SUP_output_log; } }else{ # pinging was unsuccessful, trying regular ping format if($client->query('weblogUpdates.ping', get_option('blogname'), $home)){ $SUP_output_log=strftime("%D %T")."\t► [Regular Ping] ".$server." was successfully pinged\n".$SUP_output_log; if (get_option('SUP_pinglog') == 1){ $SUP_output_log=strftime("%D %T")."\t►► Blogname: '".get_option('blogname')."'\n".$SUP_output_log; $SUP_output_log=strftime("%D %T")."\t►► Homepage: '".$home."'\n".$SUP_output_log; } }else{ $SUP_output_log=strftime("%D %T")."\t► ".$server." could not be pinged. Error message: “".$client->error->message."”\n".$SUP_output_log; } } } return $SUP_output_log; } $post_title = ""; # Receives the title of the post from a filter below function SUP_post_title($title){ global $post_title; $post_title = $title; return $title; } # Log $logfile = ABSPATH . 'wp-content/plugins/ultimate-plugins-smart-update-pinger/ultimate-plugins-smart-update-pinger.log'; function SUP_log($SUP_log_output){ global $logfile; $logerror = 0; $fh = @fopen($logfile, "a"); if(false === @fwrite($fh, $SUP_log_output)){ update_option("SUP_error", 1); }else{ update_option("SUP_error", 0); } @fclose($fh); } function SUP_get_last_log_entries($num){ global $logfile; $lines = @file($logfile); if(get_option("SUP_error") == 1){ $fh = @fopen($logfile, "a"); if(false === @fwrite($fh, "")){ echo "Error writing log file (".$logfile."). Most likely your logfile (".$logfile.") is write-protected and no log data can be saved (change the rights of this file to 777), or alternatively this could mean that you have manually removed the log file, or that you have changed the directory or file name of the plugin (they both should be 'ultimate-plugins-smart-update-pinger')"; }else{ // Original: $lines = array_slice($lines, count($lines) - $num); // Modified to show in reverse order (easier for reading) $lines = array_reverse(array_slice($lines, count($lines) - $num)); $msg = ""; foreach($lines as $line){ $msg.=trim($line)."
"; } echo $msg; } @fclose($fh); }else{ if($lines === false){ echo "Error reading log file (".$logfile."). Most likely you have manually removed the log file, or alternatively this could mean that the logfile (".$logfile.") is read-protected (change the rights of this file to 777), or that you have changed the directory or file name of the plugin (they both should be 'ultimate-plugins-smart-update-pinger')"; }else{ // Original: $lines = array_slice($lines, count($lines) - $num); // Modified to show in reverse order (easier for reading) $lines = array_reverse(array_slice($lines, count($lines) - $num)); $msg = ""; foreach($lines as $line){ $msg.=trim($line)."
"; } echo $msg; } } } # adds a filter to receive the title of the post before publishing add_filter("title_save_pre", "SUP_post_title"); # shows the options in the administration panel add_action("admin_menu", "SUP_add_options_page"); # calls SUP_ping whenever a post is published add_action("publish_post", "SUP_ping_if_new"); # calls SUP_ping_draft when changing the status from private/draft to published # add_action("private_to_published', 'SUP_ping_draft'); # removes the "WordPress official" pinging hook remove_action("publish_post", "generic_ping"); # activates pinging if setting doesn't exist in database yet (before the user has changed the settings the first time) if(get_option("SUP_ping") === false){update_option("SUP_ping", 1);} if(get_option("SUP_pinglog") === false){update_option("SUP_pinglog", 1);} if(get_option("SUP_error") === false){update_option("SUP_error", 0);} ?> {"id":1040,"date":"2011-08-31T22:44:14","date_gmt":"2011-08-31T22:44:14","guid":{"rendered":"http:\/\/www.elcrecimientopersonal.com\/?p=1040"},"modified":"2015-01-13T03:24:15","modified_gmt":"2015-01-13T03:24:15","slug":"3aspectos-de-realizar-metas","status":"publish","type":"post","link":"https:\/\/www.elcrecimientopersonal.com\/3aspectos-de-realizar-metas\/","title":{"rendered":"Los Tres Aspectos de Realizar Metas"},"content":{"rendered":"

Realizar metas y disfrutar cada paso<\/span><\/h2>\n

La alegr\u00eda de vivir incluye la alegr\u00eda de existencial y la fuerza creativa:
\nPor un lado la capacidad de conectarse con la alegr\u00eda de la pura existencia y por el otro la capacidad de transformar nuestros anhelos, deseos y metas en resultados. El que puede realizar sus metas, pero no logra conectarse con la alegr\u00eda b\u00e1sica de la existencia s\u00f3lo tiene la mitad de un todo. Quien puede fluir en cada momento y disfrutar del aqu\u00ed y ahora pero le cuesta mucho realizar sus metas tiene la otra mitad.<\/p>\n

Actuar de acuerdo a los “tres aspectos de realizar sus metas” con sus cualidades espec\u00edficas, nos permite realizar nuestras metas y disfrutar cada paso en el camino. Al disfrutar en cada momento del proceso de realizar la meta en su cualidad espec\u00edfica juntamos la alegr\u00eda existencial con la fuerza creativa.<\/p>\n

1. La situaci\u00f3n inicial<\/span><\/h2>\n

Aqu\u00ed se trata de estar en paz con la situaci\u00f3n inicial y reconocerla tal como es. Se trata de aceptarla como un desaf\u00edo que est\u00e1 dado por la misma situaci\u00f3n.
\nDe la situaci\u00f3n inicial vamos a partir. Cada paso que vamos a dar comienza con que tenemos que estar bien parados en la situaci\u00f3n inicial, para poder elevar un pie y dar el primer paso. Cada paso empieza ah\u00ed donde estamos parados ahora. Cuanto m\u00e1s relajados y presentes podemos estar en la posici\u00f3n inicial m\u00e1s chances tenemos de darnos cuenta del potencial de cambio que hay en ella. En realidad estamos siempre en una situaci\u00f3n inicial con respecto a la siguiente y no necesitamos en ning\u00fan momento del proceso maljuzgar el hecho de a\u00fan no haber llegado a la situaci\u00f3n deseada, la meta.<\/p>\n

Si aceptamos nuestros sentimientos con respecto a la situaci\u00f3n inicial o las situaciones iniciales contiguas, eso nos ayuda a relajarnos en ellas, tomarlas como son y nos permite tener acceso a importantes recursos guardados junto con nuestros sentimientos para actuar bien en ellas.<\/p>\n

2. La meta<\/span><\/strong><\/h2>\n

Con respecto a la meta dos cosas son importantes: la claridad en la meta y la disposici\u00f3n de un 100% de recibir el resultado deseado.<\/p>\n

Claridad de la meta: \u00bfcu\u00e1l es el contenido de la meta, cu\u00e1l su forma?<\/strong>
\nEl contenido de la meta es el objetivo importante que nos motiva, la calidad que vamos a recibir. La forma de la meta es la forma concreta y mensurable que nos hemos puesto como marca en el camino.<\/p>\n

Un ejemplo: el contenido de la meta es hacer conocer AFI, y una forma concreta de lograrlo ser\u00eda obtener 16 participantes para un taller. Si no podemos diferenciar entre contenido y forma puede suceder que declaramos el proyecto como fracasado porque no logramos la forma de la meta.<\/p>\n

Puede pasar que se nos pase por totalmente desapercibido, que hemos sido mucho m\u00e1s \u00fatiles al contenido de la meta que lo hab\u00edamos imaginado.<\/p>\n

Tambi\u00e9n es importante tener en cuenta qu\u00e9 tan importante es la meta declarada con respecto a otras metas nuestras. Si nos proponemos realizar nuestras visiones, nuestros deseos, y nuestras metas m\u00e1s esenciales, tambi\u00e9n pueden en ese movimiento nutrirse deseos menos importantes de esa energ\u00eda general de expansi\u00f3n. Lo mismo no puede suceder a viceversa. Si perseguimos una meta con tenacidad pero no tenemos en cuenta un deseo importante de nuestro coraz\u00f3n entonces dentro de poco nos faltar\u00e1 la energ\u00eda para realizar esa meta.<\/p>\n

100% Disposici\u00f3n de recibir el resultado:<\/strong>
\nSi solamente tenemos un 80% de disposici\u00f3n de recibir el resultado y un 20% (inconscientemente) est\u00e1 en contra o no est\u00e1 convencido de que lo podemos lograr, entonces esos 20% pueden boicotear el \u00e9xito.<\/p>\n

3. Los pasos intermedios<\/span><\/strong><\/h2>\n

Aqu\u00ed es importante desarrollar: creatividad, disposici\u00f3n de entrega a la meta, estructura, flexibilidad, entusiasmo, liviandad y tolerancia a la frustraci\u00f3n.<\/p>\n

Creatividad<\/strong>:
\nNos imaginamos como puede ser el camino a la meta y planificamos pasos intermedios. Nos basamos en experiencias pasadas y tambi\u00e9n probamos cosas nuevas.<\/p>\n

Disposici\u00f3n de entrega a la meta:<\/strong>
\nHechos hablan m\u00e1s que palabras. Si aparte de nuestros pensamientos y palabras no ponemos energ\u00eda y actos que se dirigen hacia la meta entonces eso tambi\u00e9n tiene un significado. El significado es que nuestra meta o nosotros mismos no somos lo suficientemente importante para nosotros como para entregarnos m\u00e1s.<\/p>\n

Estructura:<\/strong>
\nSin estructura los pasos intermedios no basar\u00edan uno en el otro. Por esa falta de conexi\u00f3n interna se dispersar\u00edan sin efecto. Cuanto menos estructura hay, menos marcas tenemos en el camino y menos retro-alimento para darnos cuenta si nuestro plan es lo suficientemente realista o si queremos cambiar nuestro plan. Adem\u00e1s tenemos menos referencias para aprender de nuestros errores. Si queremos disfrutar el dar los pasos estructuradamente, necesitamos una estructura que funcione sin maljuzgarnos.<\/p>\n

Flexibilidad:<\/strong>
\nSi nos movemos en direcci\u00f3n hacia una meta tenemos un prejuicio acerca de c\u00f3mo va ser el camino hacia ella.
\nLa naturaleza de nuestros prejuicios es que no concuerdan totalmente con la realidad. Parte de la aventura es adaptar el plan a lo largo del camino acorde a los desv\u00edos y los errores hechos. Es necesario ser flexible, cultivar una postura amorosa y clara con respecto a nuestros errores.<\/p>\n

Entusiasmo<\/strong>:
\nSi aceptamos las condiciones dadas de la situaci\u00f3n inicial como desaf\u00edos y estamos convencidos de nuestra meta, de nuestro plan y de los pasos intermedios, entonces sentimos entusiasmo. Si en el camino perdemos el entusiasmo podemos despertarlo de vuelta reforzando dichos aspectos.<\/p>\n

A veces falta entusiasmo no porque el plan en s\u00ed no sea arm\u00f3nico, sino porque cosas importantes como p.e. tranquilidad, relajamiento, contactos sociales, no fueron considerados lo suficiente. Un buen plan lleva a un estilo de vida y de trabajo cotidiano, que va con nosotros y que apoya nuestro desarrollo aut\u00e9ntico. Cu\u00e1nto m\u00e1s entusiasmo sentimos m\u00e1s motivados y con m\u00e1s empuje daremos los pasos intermedios.<\/p>\n

Liviandad:<\/strong>
\nCon liviandad no nos referimos a la falta de esfuerzo y de trabajo. Si trabajamos con entusiasmo y nos esforzamos tambi\u00e9n all\u00ed hay una cualidad de liviandad. Liviandad aqu\u00ed significa la ausencia de una postura de lucha a la manera de: “Tengo<\/em> que trabajar duro<\/em> y tengo que hacerme valer solo<\/em>“. Liviandad incluye la capacidad de delegar, la disposici\u00f3n de recibir apoyo o de recibir la meta en forma de regalo. Tambi\u00e9n contiene la disposici\u00f3n de experimentar milagros.<\/p>\n

Tolerancia a la frustraci\u00f3n:<\/strong>
\nLa frustraci\u00f3n forma parte de la manera humana de realizar cosas. Por lo general (tengo entendido) no tenemos los poderes de los dioses para materializar nuestras metas en forma espont\u00e1nea, directa y sin equivocaciones. Si como humanos realizamos cosas entonces por lo general empezamos a construir puentes entre la idea y la realidad, entre el plan y su realizaci\u00f3n. La frustraci\u00f3n de all\u00ed es parte del material a digerir. Nos ayuda a acercar cada vez m\u00e1s la idea a la realizaci\u00f3n. Poca tolerancia a la frustraci\u00f3n nos hace abandonar antes de tiempo el proyecto o de no animarnos m\u00e1s a comenzar un proyecto nuevo. Una gran tolerancia a la frustraci\u00f3n y nuestra capacidad de integrarla nos permite aprender de nuestros errores y de acercar cada vez m\u00e1s y de nuevo nuestras ideas a la realidad.<\/p>\n

Si nos proponemos alcanzar una meta nos inscribimos a un curso en la vida del cual no conocemos exactamente el curriculum de su ense\u00f1anza. A veces, cuando estamos en desacuerdo y enojados con las lecciones que nos da la vida puede tener sentido preguntarnos: \u00bb\u00bfMe propuse inconscientemente una meta y esas son las lecciones en el camino a ella?\u00ab<\/p>\n

Conocer los tres aspectos de la realizaci\u00f3n de metas en su peculiaridad nos permite atar cabos; pero aprovechar fruct\u00edferamente en toda su dimensi\u00f3n esta informaci\u00f3n reci\u00e9n lo hace posible si fortalecemos esos tres aspectos con los ejercicios correspondientes. Sobre todo el ejercicio de llevar la disposici\u00f3n de recibir el resultado a un 100% vale oro.<\/p>\n","protected":false},"excerpt":{"rendered":"

Realizar metas y disfrutar cada paso La alegr\u00eda de vivir incluye la alegr\u00eda de existencial y la fuerza creativa: Por un lado la capacidad de conectarse con la alegr\u00eda de la pura existencia y por el otro la capacidad de transformar nuestros anhelos, deseos y metas en resultados. El que puede realizar sus metas, pero […]<\/p>\n","protected":false},"author":167,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[39,1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.elcrecimientopersonal.com\/wp-json\/wp\/v2\/posts\/1040"}],"collection":[{"href":"https:\/\/www.elcrecimientopersonal.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.elcrecimientopersonal.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.elcrecimientopersonal.com\/wp-json\/wp\/v2\/users\/167"}],"replies":[{"embeddable":true,"href":"https:\/\/www.elcrecimientopersonal.com\/wp-json\/wp\/v2\/comments?post=1040"}],"version-history":[{"count":7,"href":"https:\/\/www.elcrecimientopersonal.com\/wp-json\/wp\/v2\/posts\/1040\/revisions"}],"predecessor-version":[{"id":1286,"href":"https:\/\/www.elcrecimientopersonal.com\/wp-json\/wp\/v2\/posts\/1040\/revisions\/1286"}],"wp:attachment":[{"href":"https:\/\/www.elcrecimientopersonal.com\/wp-json\/wp\/v2\/media?parent=1040"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.elcrecimientopersonal.com\/wp-json\/wp\/v2\/categories?post=1040"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.elcrecimientopersonal.com\/wp-json\/wp\/v2\/tags?post=1040"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}