2016-12-15 70 views
0

我有这样的代码,在一个WordPress模板页面创建一个动态的页面标题:动态meta描述和关键字 - WordPress的PHP

$prodname = sanitize_text_field($_GET['prod_name']); 

$prodname = esc_sql($prodname); 

global $wpdb; 
$products = $wpdb->get_results("SELECT * FROM product_data WHERE prod_name='$prodname';"); 

add_filter('wp_title', 'assignPageTitle'); 

function assignPageTitle() { 

    global $products; 

    foreach($products as $product){ 

     echo "".$product->prod_page_title.""; 

    } 

} 

我想用类似的技术做meta描述和meta关键字太,但我不确定这两个WordPress的钩子是什么。任何人都可以帮忙?

UPDATE:

此代码工作刚刚闭幕</head>标签

add_action('wp_head', 'assignMetaInfo'); 

function assignMetaInfo() { 

    global $products; 

    foreach($products as $product){ 

     echo "<meta name='description' content='Test Description' />"; 

     echo "<meta name='keywords' content='Test Keywords' />"; 

    } 

} 
+0

您使用任何SEO插件? –

+0

我正在使用运行自定义子主题的Genesis框架。 Genesis拥有自己的SEO设置,但是由于这些模板页面是使用MySQL数据库中的数据动态显示的,所以我无法真正使用它,同样也适用于其他插件,如Yoast。除非你知道通过插件添加动态内容的方法吗? – SharpenedPixels

回答

0

这是正确的解决方案之前添加meta描述和meta关键字:

add_action('wp_head', 'assignMetaInfo'); 

function assignMetaInfo() { 

    global $products; 

    foreach($products as $product){ 

     echo "<meta name='description' content='Test Description' />"; 

     echo "<meta name='keywords' content='Test Keywords' />"; 

    } 

} 
+0

是的,你必须这样做,因为如果你不使用任何seo插件,那么默认情况下WP不会创建这个'meta'。但你应该只有一个'meta desc'和'关键字'每页不超过那个。如果产品具有多于1个数据,for循环可能会生成更多1。 –