Revision: 62704
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at March 6, 2013 23:08 by barkgj
Initial Code
function nxs_orderseo($a, $b)
{
if ($a["val"] == $b["val"])
{
return 0;
}
return ($a["val"] < $b["val"]) ? -1 : 1;
}
function nxs_webmethod_getseoanalysis()
{
global $post;
extract($_REQUEST["inputparameters"]);
$result = array();
if ($postid == "")
{
webmethod_return_nack("postid niet meegegeven");
}
if (!defined('WPSEO_PATH'))
{
webmethod_return_nack("please install the WordPress Seo plugin by Yoast (1)");
}
if (!class_exists ("WPSEO_Metabox"))
{
require WPSEO_PATH.'admin/class-metabox.php';
}
if (!class_exists ("WPSEO_Admin"))
{
require WPSEO_PATH.'admin/class-admin.php';
}
require_once ABSPATH . 'wp-admin/includes/post.php';
$result["focuskw"] = wpseo_get_value('focuskw', $postid);
if ($result["focuskw"] === false)
{
$result["focuskw"] = "";
}
$result["title"] = wpseo_get_value('title', $postid);
if ($result["title"] === false)
{
$result["title"] = "";
}
$result["metadesc"] = wpseo_get_value('metadesc', $postid);
if ($result["metadesc"] === false)
{
$result["metadesc"] = "";
}
$wpseo_metabox = new WPSEO_Metabox();
$rendermode = "anonymous";
$postadapter = new stdClass();
$postadapter->ID = $postid;
$postadapter->post_type = nxs_getwpposttype($postid);
$postadapter->post_name = nxs_getslug_for_postid($postid);
$postadapter->post_content = nxs_getrenderedhtml($postid, $rendermode);
// the plugin of Yoast relies on global $post for some functions, where-as for
// others it relies on an explicit argument $post... in both cases we mean the
// same
$post = $postadapter;
// debug
$result["debug_testpostid"] = $postadapter->ID;
$result["debug_testpostname"] = $postadapter->post_name;
$result["debug_testpostcontent"] = $postadapter->post_content;
$calculatedresults = $wpseo_metabox->calculate_results($postadapter);
// result can be a wp_error, for example, if the focuskey is not set
if (is_wp_error($calculatedresults))
{
$errorcodes = $calculatedresults->get_error_codes();
$result["errors"] = array();
foreach ($errorcodes as $currentcode)
{
$thiserrors = $calculatedresults->get_error_messages($currentcode);
$thiserror = $calculatedresults->get_error_message($currentcode);
if (count($thiserrors) > 1)
{
$thiserror .= " (only showing first, skipping remaining errors)";
}
$result["wperrors"][] = $thiserror;
}
}
else
{
$snippet = $wpseo_metabox->snippet();
$result["snippet"] = $snippet;
// enrich the scores
$i = 0;
foreach ($calculatedresults as $currentcalculatedresult)
{
$value = $calculatedresults[$i]["val"];
$score = wpseo_translate_score($value);
$calculatedresults[$i]["indicator"] = $score;
$i++;
}
// re-order
usort($calculatedresults, "nxs_orderseo");
$result["calculatedresults"] = $calculatedresults;
}
webmethod_return_ok($result);
}
Initial URL
http://nexusthemes.com/enhancing-yoasts-wordpress-seo-plugin/
Initial Description
This snippet shows how to retrieve information from the SEO plugin of Yoast, to be used for front-end use. This snippet is taken from the opensource free Nexus WP framework supporting front-end editing, custom layout and drag & drop.
Initial Title
Yoast WordPress SEO Ajax frontend updater
Initial Tags
ajax, wordpress, update
Initial Language
PHP