2016-12-15 72 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。 –