2013-10-02 149 views
1

我有兩類職位。我只想在博客頁面上顯示一個。該頁面不是主頁。我嘗試在代碼中使用此代碼:如何從WordPress的博客頁面中排除一個類別?

<?php 
if (is_page('page_slug')) { 
    query_posts('cat=-(category id)'); 
} 
?> 

無濟於事。我也嘗試爲頁面創建一個新的模板,然後使用

<?php 
if (is_page_template('new_blog')) { 
    query_posts('cat=-(category id)'); 
} 
?> 

上的index.php,仍然沒有。也許我把代碼放在了錯誤的地方?任何人都可以提供有關我如何實現這一目標的建議?

編輯:

這裏是functions.php文件:

<?php 

include_once get_template_directory() . '/functions/blackbird-functions.php'; 
$functions_path = get_template_directory() . '/functions/'; 
/* These files build out the options interface. Likely won't need to edit these. */ 
require_once ($functions_path . 'admin-functions.php'); // Custom functions and plugins 
require_once ($functions_path . 'admin-interface.php'); // Admin Interfaces (options,framework, seo) 
/* These files build out the theme specific options and associated functions. */ 
require_once ($functions_path . 'theme-options.php'); // Options panel settings and custom settings 
require_once ($functions_path . 'shortcodes.php'); 
?> 
<?php 

/* ----------------------------------------------------------------------------------- */ 
/* Styles Enqueue */ 
/* ----------------------------------------------------------------------------------- */ 

function blackbird_add_stylesheet() { 
    wp_enqueue_style('shortcodes', get_template_directory_uri() . "/css/shortcode.css", '', '', 'all'); 
} 

add_action('init', 'blackbird_add_stylesheet'); 
/* ----------------------------------------------------------------------------------- */ 
/* jQuery Enqueue */ 
/* ----------------------------------------------------------------------------------- */ 

function blackbird_wp_enqueue_scripts() { 
    if (!is_admin()) { 
     wp_enqueue_script('jquery'); 
     wp_enqueue_script('blackbird-ddsmoothmenu', get_template_directory_uri() . '/js/ddsmoothmenu.js', array('jquery')); 
     wp_enqueue_script('blckbird-flex-slider', get_template_directory_uri() . '/js/jquery.flexslider-min.js', array('jquery')); 
     wp_enqueue_script('blackbird-testimonial', get_template_directory_uri() . '/js/slides.min.jquery.js', array('jquery')); 
     wp_enqueue_script('blackbird-prettyphoto', get_template_directory_uri() . '/js/jquery.prettyPhoto.js', array('jquery')); 
     wp_enqueue_script('blackbird-validate', get_template_directory_uri() . '/js/jquery.validate.min.js', array('jquery')); 
     wp_enqueue_script('blackbird-custom', get_template_directory_uri() . '/js/custom.js', array('jquery')); 
    } elseif (is_admin()) { 

    } 
} 

add_action('wp_enqueue_scripts', 'blackbird_wp_enqueue_scripts'); 
/* ----------------------------------------------------------------------------------- */ 
/* Custom Jqueries Enqueue */ 
/* ----------------------------------------------------------------------------------- */ 

function blackbird_custom_jquery() { 
    wp_enqueue_script('mobile-menu', get_template_directory_uri() . "/js/mobile-menu.js", array('jquery')); 
} 

add_action('wp_footer', 'blackbird_custom_jquery'); 
//Front Page Rename 
$get_status = blackbird_get_option('re_nm'); 
$get_file_ac = get_template_directory() . '/front-page.php'; 
$get_file_dl = get_template_directory() . '/front-page-hold.php'; 
//True Part 
if ($get_status === 'off' && file_exists($get_file_ac)) { 
    rename("$get_file_ac", "$get_file_dl"); 
} 
//False Part 
if ($get_status === 'on' && file_exists($get_file_dl)) { 
    rename("$get_file_dl", "$get_file_ac"); 
} 

// 
function blackbird_get_option($name) { 
    $options = get_option('blackbird_options'); 
    if (isset($options[$name])) 
     return $options[$name]; 
} 

// 
function blackbird_update_option($name, $value) { 
    $options = get_option('blackbird_options'); 
    $options[$name] = $value; 
    return update_option('blackbird_options', $options); 
} 

// 
function blackbird_delete_option($name) { 
    $options = get_option('blackbird_options'); 
    unset($options[$name]); 
    return update_option('blackbird_options', $options); 
} 

//Enqueue comment thread js 
function blackbird_enqueue_scripts() { 
    if (is_singular() and get_site_option('thread_comments')) { 
     wp_print_scripts('comment-reply'); 
    } 
} 

add_action('wp_enqueue_scripts', 'blackbird_enqueue_scripts'); 
?> 

<?php 
add_action('init','posts_of_one_cat'); 
function posts_of_one_cat() { 
if (is_page('26') ) { 
    query_posts('cat=-12'); // 3 is id of your category you want to exclude 
    // do anything here 
} 
} 
?> 

回答

0

get_posts()希望作爲一個選項。

<?php $args = array(
    'category' => '-(category id)', 
?> 

<?php 
    $postslist = get_posts($args); 

    foreach ($postslist as $post) : 
    setup_postdata($post); 
?> 
+0

我是否將它放在functions.php中?或我正在使用的博客頁面模板?對不起,我對這一切都很陌生,但我一直負責一個網站,我正在儘快學習。 – jemtan990

+0

沒問題!我們都必須從某個時候開始(我肯定還在學習)。這將在您使用的模板中進行。在'foreach'循環中,您可以執行諸如獲取/輸出$ post'數據,例如'echo $ post-> ID','$ slug = $ post-> slug'。爲了吐出整篇文章,看看你可以訪問什麼以及如何訪問它,只需將'var_dump($ post)'放在'foreach'循環中,然後從那裏開始。快樂的編碼,和速度。 – zillaofthegods

+0

我終於明白了!謝謝你的幫助。我覺得這給了我一個更強大的在Wordpress中搞亂的感覺。 – jemtan990

0

在index.php文件的代碼不會被執行爲的index.php是在網頁中functions.php的部分功能添加此代碼

像...

<?php 
add_action('init','posts_of_one_cat'); 
function posts_of_one_cat() { 
if (is_page('your blog page id here') ) { 
    query_posts('cat=-3'); // 3 is id of your category you want to exclude 
    // do anything here 
} 
} 
?> 
+0

我做到了,整個網站都停了下來。它說「意外<在functions.php」這應該是直jquery? – jemtan990

+0

這是語法錯誤,也許你確實把'<?php' php開放標籤放在另一個<?php'開始標籤 – codepixlabs

+0

啊哈,對不起這個愚蠢的錯誤。我把代碼放進去了,但我仍然沒有看到任何效果。這真讓我抓狂! – jemtan990

相關問題